0
我寫了一個查詢找到列,而不從動態表中的數據, 但其給出的輸出只能用ROWNUM = 1,這也是不正確的,查詢從表中發現沒有數據的列動態
WITH x AS (SELECT column_name FROM all_tab_cols
WHERE OWNER='HR' AND table_name='EMPLOYEES' AND ROWNUM=1)
SELECT X.column_name,count(X.column_name)
FROM EMPLOYEES,X
/*CONNECT BY LEVEL <= (SELECT count(1) FROM all_tab_cols
WHERE OWNER='HR' AND table_name='EMPLOYEES')*/
group by X.column_name;
COLUMN_NAME COUNT(X.COLUMN_NAME)
------------------------------ ----------------------
EMPLOYEE_ID 20
當我嘗試使用水平,使其動態失敗,
WITH x AS (SELECT column_name FROM all_tab_cols
WHERE OWNER='HR' AND table_name='EMPLOYEES' AND ROWNUM=level)
SELECT X.column_name,count(X.column_name)
FROM EMPLOYEES,X
CONNECT BY LEVEL <= (SELECT count(1) FROM all_tab_cols
WHERE OWNER='HR' AND table_name='EMPLOYEES')
group by X.column_name;
Error at Command Line:14 Column:5 Error report: SQL Error: ORA-01788: CONNECT BY clause required in this query block 01788. 00000 - "CONNECT BY clause required in this query block"
CUDü糾正達到同樣的查詢?