2013-03-20 13 views
0

我有此查詢未返回任何東西:使用`Like`比較值時,在select語句中使用`Case`的正確方法是什麼?

select 
    case when Username like 'participanta%' then 
     'Novice' 
    when Username like 'participantb%' then 
     'Experienced' 
    when Username like 'participantc%' then 
     'Master' 
    end as 'group' 
from Users; 

我只想值是「新手」如果Username就像participanta12,等等。

我也試過這個查詢剛剛被第二和第三when後襬脫Username like的:

select 
    case when Username like 'participanta%' then 
     'Novice' 
    when 'participantb%' then 
     'Experienced' 
    when 'participantc%' then 
     'Master' 
    end as 'group' 
from Users; 

還試圖爲一個用戶組:

select 
    case when Username like 'participanta%' then 
     'Novice' 
    end as 'group' 
from Users; 

仍然不回報什麼。

+1

表中的數據是什麼樣的?你能發佈一些樣本數據嗎? – Taryn 2013-03-20 19:01:16

回答

2

你的第一個查詢應該工作,如果你簡單地改變

as 'group' 

as `group` 
+0

奇怪的是,即使使用反引號,[sqlfiddle](http://www.sqlfiddle.com/#!2/3e1dc/3)也會顯示此問題。 – PinnyM 2013-03-20 18:55:26

+0

@Mark Ba​​nnister我只是試了一下back-ticks,但沒有奏效。 – 2013-03-20 18:56:52

+0

我的不好,在小提琴中的錯字和[反引號無關](http://www.sqlfiddle.com/#!2/7c0b9/5)。我猜測OP可能在某處也有一個錯字;) – PinnyM 2013-03-20 18:58:52

0

爲了擴大對@馬克的回答。

您的第一個案例陳述是正確的。
但是,您正在使用as構造錯誤。

如果您想要轉義保留關鍵字,您需要使用反引號`,而不是引號'

請參見:MySQL and CASE WHEN with a range of values

對於類似的問題。

+0

標準報價似乎也工作得很好 - 請參閱我對@ MarkBannister的回答的評論。 – PinnyM 2013-03-20 19:02:39

相關問題