SQL 存储中if、else判断、case...when..then..else.....end
程序员文章站
2022-06-01 16:47:23
...
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
推荐阅读