我有類似下面的表中的VARCHAR列創建類別欄:SQL查詢:基於表包含特定值
Date Description Value1 Value2
01/01/2012 shiny colour 2 0
01/01/2012 yellow colour 2 2
03/01/2012 matt colour 2 2
03/01/2012 matt 4 1
03/01/2012 shiny 2 2
我想寫一個SELECT SQL查詢(T-SQL),將輸出所有上面的列,但也顯示一個額外的列作爲SELECT語句的輸出,其值取決於描述中是否存在單詞「color」(如果「color」存在,則它將是一個值,如果不是會顯示不同的值)。我也想要顯示另一個額外的列,它的值取決於Description列中「matt」或「shiny」這些單詞的存在,但我假設這樣做的方法是相似的)。
我相信我應該能夠使用COALESCE函數來做到這一點,但我並不熟悉這一點,並且努力獲得任何工作?
延長
嘿,感謝您的回答。他們真的很有幫助。我還有一個擴展的問題。我的第二個生成列依賴於第一個生成列中的信息。因此類似於:
SELECT *,
CASE
WHEN Description LIKE '%colour%' THEN 'SomeValue'
ELSE 'Unclassified'
END AS Category1,
CASE
WHEN AnotherColumn LIKE 'Something' THEN 'SomeValue'
WHEN Category1='Unclassified' THEN 'Unclassified'
ELSE 'Generic'
END AS Category2
FROM table_name
如何獲得Category2的輸出依賴於Category1的輸出?我正在嘗試類似上面的內容,但不起作用。
我的擴展問題是在這裏找到答案:T-SQL CASE statement relies on another CASE statement in same SELECT query
完美謝謝! – Katie 2013-05-01 11:23:40