簡體   English   中英

如果找不到某個列,則Oracle Select with返回該列的null值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM