簡體   English   中英

SQL DB2 中具有多個條件的 Where 子句

[英]Where clause with multiple conditions in SQL DB2

Col1    Col2        Col3

ABC     Product     Digital
ABC     SubProduct  XF
BCD     Product     Non-Digital
BCD     SubProduct  <White Space>
CDE     Product     Digital
CDE     SubProduct  Null
DEF     Product     Non-Digital
DEF     SubProduct  FR

期望輸出:

Col1    Product         SubProduct

ABC     Digital         XF
DEF     Non-Digital     FR

詢問:

SELECT * 
FROM TABLE
WHERE (Col2 IN ('Product','SubProduct') AND NOT Col3 LIKE '')

任何幫助是極大的贊賞

嘗試這個:

WITH TAB (Col1, Col2, Col3) AS
(
VALUES
  ('ABC', 'Product', 'Digital')
, ('ABC', 'SubProduct', 'XF')
, ('BCD', 'Product', 'Non-Digital')
, ('BCD', 'SubProduct', ' ')
, ('CDE', 'Product', 'Digital')
, ('CDE', 'SubProduct', Null)
, ('DEF', 'Product', 'Non-Digital')
, ('DEF', 'SubProduct', 'FR')
)
SELECT A.Col1, A.Col3 AS Product, B.Col3 AS SubProduct
FROM TAB A
JOIN TAB B ON B.Col1 = A.Col1 AND B.Col2 = 'SubProduct'
WHERE A.Col2 = 'Product' AND NULLIF(B.Col3, '') IS NOT NULL;

|COL1|PRODUCT    |SUBPRODUCT |
|----|-----------|-----------|
|ABC |Digital    |XF         |
|DEF |Non-Digital|FR         |

dbfiddle 示例

暫無
暫無

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

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