欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL 存储中if、else判断、case...when..then..else.....end

程序员文章站 2022-06-01 16:47:23
...

1、

表结构:

SQL 存储中if、else判断、case...when..then..else.....end

----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


相关标签: sql