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

来源:互联网 发布:淘宝达人申请 编辑:程序博客网 时间:2024/06/06 00:58

1、

表结构:


----1.某用户的积分是n,数据库有一张积分等级表(字段有RatingPoints、Score);----等级一 100----等级二 200----等级三 300----查询该用户的等级?declare @n intdeclare @s intset @n=400if(@n<100)begin     set @s=@nendelse if(@n>=100 and @n<200)begin     set @s=100endelse if(@n>=200 and @n<300)begin    set @s=200endelsebegin    set @s=300endselect * from dbo.UserScores where Score=@s

方法二(不使用数据库):

declare @fen intset @fen=500select 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


原创粉丝点击