標題: [問題討論] SQL case then 使用,哪錯了? [列印本頁] 作者: 朱朱愛你 時間: 2016-1-11 22:00:11 標題: [問題討論] SQL case then 使用,哪錯了?
select 會員代號,姓名,累計消費金額,case (累計消費金額)as 等級
when (累計消費金額 < 10000) then 'C '
when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
when (累計消費金額 > = '20000') then 'A'
end
from dbo.會員 作者: openjacket 時間: 2016-2-12 14:39:51
改成這樣修改debug看看 , 沒實際run過 不知道 哪邊還要修 ; 共勉之 :)
select 會員代號,姓名,累計消費金額 from dbo.會員
where
case (累計消費金額)as 等級
when (累計消費金額 < 10000) then 'C '
when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
when (累計消費金額 > = '20000') then 'A'
end 作者: ehh 時間: 2016-2-12 21:39:47
是ACCESS的SQL
還是純SQL語法?
題目應該是 累計消費金額未滿1000 =C級 累計消費金額大於1000 且未滿2000 =B級 累計消費金額大於2000 =A級
在實作上除了利用CASE WHEN 外 還需要用GROUP BY 把 累計消費金額 加總 但感覺這只是要練習CASE WHEN語法而已
所以 純SQL
應該是
照原PO邏輯修改
select 會員代號,姓名,累計消費金額,
case when (累計消費金額 < '10000') then 'C '
when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
when (累計消費金額 > = '20000') then 'A'
end as 等級
from dbo.會員
利用 ELSE 少打些字
select 會員代號,姓名,累計消費金額,
case when (累計消費金額 > = '20000') then 'A'
when (累計消費金額 > = '10000') and (累計消費金額 < '20000') then 'B'
else 'C ' end as 等級
from dbo.會員