[英]Oracle Select with if some column not found return null value to that column
我需要在oracle中選擇查詢,如果未找到select列,則返回null並顯示錯誤消息。
從tbl中選擇A,B,C; 但是表只有A,C列
以下是您的問題的查詢:
SELECT Decode (a, 0, NULL,
a) a,
Decode (b, 0, NULL,
b) b,
Decode (c, 0, NULL,
c) c
FROM (SELECT (SELECT Count (*)
FROM user_tab_cols
WHERE table_name = 'ABC'
AND column_name = 'A') a,
(SELECT Count (*)
FROM user_tab_cols
WHERE table_name = 'ABC'
AND column_name = 'B') b,
(SELECT Count (*)
FROM user_tab_cols
WHERE table_name = 'ABC'
AND column_name = 'C') c
FROM abc)
檢查一下:
SELECT b.*, DECODE (a.a, 0, NULL, decode(a.b,0,null, decode(a.c,0,null))) missing_col
FROM (SELECT (SELECT COUNT ( * )
FROM user_tab_cols
WHERE table_name = 'ABC' AND column_name = 'A')
a, (SELECT COUNT ( * )
FROM user_tab_cols
WHERE table_name = 'ABC' AND column_name = 'B')
b, (SELECT COUNT ( * )
FROM user_tab_cols
WHERE table_name = 'ABC' AND column_name = 'C')
c
FROM abc) a, abc b
where a.rowid = b.rowid;
顯示如下結果:
A C MISSING_COL
---------- ---------- -----------
a1 c1
a2 c2
選擇了2行。
您可以將MISSING_COL視為不可用的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.