2012-02-24 63 views
0

以及我想要做一個查詢,因爲這,但我不知道這是否是更多鈔票SQL Query select col1,col2,if col3 ='xx'then'yy'else col3,col4 col5 ???它是可行的嗎?

Select 
    col1, 
    col2, 
    col3, 
    if(contain(col3,'somethingx')) then 'hello' else 'world' as col4, 
    col5 
from table1 

換句話說,我要選擇

col1 
col2 
col3 

如果col3包含單詞'somethingx'話,我想選擇'hello' as col4

否則,我想從我的表中選擇'world' as col5

+1

您是否試過Case語句? – Dan 2012-02-24 21:22:28

+0

您是否閱讀過有關T-SQL中「CASE」的說明? http://msdn.microsoft.com/en-us/library/ms181765.aspx – teran 2012-02-24 21:24:24

+0

只是爲了討論術語,在T-SQL中'CASE'是*表達式*(它返回一個標量值),而不是*聲明*。把它稱爲一個聲明可以讓人們相信你可以用它來控制流,就像你可以用VB中的同名詞一樣,在T-SQL中你不能這樣做。 – 2012-02-24 22:25:42

回答

4
SELECT 
    col1, 
    col2, 
    col3, 
    CASE WHEN col3 LIKE '%somethingx%' THEN 'hello' ELSE 'world' END AS col4, 
    col5 
FROM table1 
相關問題