我有一個數據庫表「table_name1」在SQL Server 2012中,我使用SQL Server Management Studio版本10.如何運行SQL查詢以從三列之一中提取數據?
數據表的樣子:
colpkey col1 col2 col3
1234 AB1234 AB1234
1265 BS5379 BS5379 BS5379
2323 WE7865 WE7865 WE7865
3267 WB7690 WB7690
6543 NULL DH6583
8798 NULL
9403 BF6543 NULL
9856 BH7548 BH7548 BH7548
查詢我用來創建該表樣本表:
create table table_name1 (
colpkey bigint primary key,
col1 varchar(10) ,
col2 varchar(10),
col3 varchar(10)
);
我想寫一個查詢,所以它應該拉兩欄,「colpkey」和「col」。 「col」應該來自「col1」的值。如果「col1」爲NULL或空白,則應從「col2」中獲取值。如果「col2」爲NULL或空白,則應從「col3」中獲取值。如果所有「col1」,「col2」和「col3」都是空白或NULL,那麼放入「col」的值應該是空白('')。
所以對於給定的樣本「table_name1」查詢應拉像數據:
colpkey col
1234 AB1234
1265 BS5379
2323 WE7865
3267 WB7690
6543 DH6583
8798
9403 BF6543
9856 BH7548
我怎麼能寫查詢做到這一點?我試圖用例,並與下面的查詢上來:
select colpkey,
Case WHEN (col1 != null and col1!= '') then col1
ELSE
(CASE WHEN (col2 != null and col2!= '') then col2
ELSE
(CASE WHEN (col3 != null and col3!= '') then col3
ELSE '' END) END) END as col
from table_name1;
但它顯示空白的每一行,如:
colpkey col
1234
1265
2323
3267
6543
8798
9403
9856
請建議我在哪裏與查詢回事?
你快了;) –
@AlexKudryashev GMTA。 –
謝謝Tim的建議。它給了我我期待的結果。所以我已經接受了你的回答。 – 300