我有一個sql server 2008表,我們說「alpha」,有三列。他們是[ID],[col1]和[col2]。Where Case Statement trouble
id|col1|col2
1 |X |john1X|
1 |Y |john1Y|
1 |Z |john1Z|
2 |X |john2|
3 |Y |john3|
4 |X |john4|
每個ID可能有多個條目。如果col1包含'X',我希望顯示該行。如果col1中沒有'X'的ID,我想選擇'Y'。否則,行不應該出現。
對於上面的示例數據,預期的輸出將會低於。
id|col1|col2
1 |X |john1X|
2 |X |john2|
3 |Y |john3|
4 |X |john4|
我一直試圖讓這個代碼工作,
select * from alpha
where col1 = case
when exists(select * from alpha where col1 = 'X') then 'X'
else 'Y'
end
但是我一直得到下面的輸出不管我怎麼重寫代碼。
id|col1|col2
1 |X |john1X
2 |X |john2
4 |X |john4
通過身份證也給你的子查詢 – techspider