1、
表結構:
----1.某使用者的積分是n,資料庫有一張積分等級表(字段有RatingPoints、Score);
----等級一 100
----等級二 200
----等級三 300
----查詢該使用者的等級?
declare @n int
declare @s int
set @n=400
if(@n<100)
begin
set @[email protected]
end
else if(@n>=100 and @n<200)
begin
set @s=100
end
else if(@n>=200 and @n<300)
begin
set @s=200
end
else
begin
set @s=300
end
select * from dbo.UserScores where [email protected]
方法二(不使用資料庫):
declare @fen int
set @fen=500
select dj=case when @fen>300 then 3
when @fen>200 then 2
when @fen>100 then 1
else 0 end
2、case ... when ... then ....
when ... then ....
else .... end 顯示的列名
--簡單Case函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜尋函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
如果是select case..when...then...else ..end as '顯示列名稱' ,後面最好加一個group by
相關文檔:
http://www.cnblogs.com/prefect/p/5746624.html
case表達式兩種寫法:
----case表達式1
select ID,TestType,
CASE TestType WHEN '主體結構' then '1'
WHEN '鋼結構' then '2'
WHEN '建築幕牆' then '3'
ELSE '0'
end as '類型'
from LbtTestTypes
----case表達式2
select ID,TestType,
CASE WHEN TestType='主體結構' then '1'
WHEN TestType='鋼結構' then '2'
WHEN TestType='建築幕牆' then '3'
ELSE '0'
end as '類型'
from LbtTestTypes