簡體   English   中英

UNION ALL如何在一列中返回空白而在另一列中返回數據?

[英]How does UNION ALL return blanks in one column and data in another?

我有一個視圖,它具有兩個使用UNION ALL返回數據的SELECT語句。

SELECT column1, column2, column3, column4
FROM table1
UNION ALL
SELECT column1, column2, column3, column4
FROM table2

因此,由於column4 ='A',因此應該認為table1中的所有列都顯示數據。 但是,在表2中,列2應該返回空白/空值,因為列4 =“ B”。 請記住,表2中的column2確實包含數據,但是在View中,我們只想返回空白/空值。

您可以選擇文字而不是列數據:

 SELECT column1, column2, column3, column4
 FROM table1
 UNION ALL
 SELECT column1, '-', column3, column4
 FROM table2

'-'上面使用了'-' ,但是您也可以選擇NULL' '0 (需要匹配第一個SELECT的列數據類型)。

您想要這樣的東西嗎? Column4為'B'時,將column2屏蔽為NULLblanks 可以使用DECODECASE WHEN

SELECT column1, column2, column3, column4
 FROM table1
 UNION ALL
 SELECT column1, DECODE(column4,'B',NULL,column2), column3, column4
 FROM table2

多個值:

SELECT column1, column2, column3, column4
 FROM table1
UNION ALL
SELECT column1,
       CASE WHEN column4 IN ('B','D','O','R'..) THEN
          NULL
       ELSE
         column2
       END,
       column3,
       column4
FROM  table2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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