sql2005中的case when语句怎么用啊?请写出一个常见的例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql2005中的case when语句怎么用啊?请写出一个常见的例子相关的知识,希望对你有一定的参考价值。

sql语句中定义了一个变量@num,我要完成的功能是:当@num>10时,执行一个操作(比如:select,update,insert这样的操作),当@num>20时,执行。。。。就是这样下去,像switch语句一样!

假设sex字段是1位的字符型的,1或2,1代表男,2代表女

如果想在查询结果中不显示1、2,而显示男、女,则:

假设一个表的环境,表名叫tab_1,字段“姓名”为name,字段“性别”为sex

select name,
case sex
when \'1\' then \'男\'
when \'2\' then \'女\'
end
from tab_1;

结果如:
name`````````sex
----------------
张三`````````男
李四`````````女

而不加case when语句的是:
name`````````sex
----------------
张三`````````1
李四`````````2

================================================
还有一种写法,例如:
select
case
when 总分 >= 180 then \'优秀\'
when 总分 <= 120 then \'差\'
end
from 成绩表;
参考技术A 用if吧
IF @NUM>10
BEGIN
……(比如:select,update,insert这样的操作)
END
IF @NUM>20
BEGIN
……(比如:select,update,insert这样的操作)
END

SQL中的decode及case when的用法

参考技术A 在写 sql的时候我们会经常使用到decode函数,今天我们来讲一些decode的基本用法吧。

表达式:decode(列名,值1,值11,值2,值22,值3,值33......,值X)

表达式的意思:

       文字描述: 如果列名对应的值等于值1,那么他的值就等于值11,如果列名对应的值是值2那么他的值就是值22,如果列名对应的值是值3那么他的值就是值33等等,条件都不满足,列名的值就是值X 。

       用java的语法来表达就是:

     其实在sql中还有一种方法表达的来表达if else的判断语句,那就是 case when语句,但是case when 有两种表方式.

    用case when 来表达上面的语句:

表达方式一:

表达方式二:

最后提一点一定要 注意 的是:

如果不一样那就会报错

ps:如果对你们有帮助请点击下面的喜欢,谢谢

以上是关于sql2005中的case when语句怎么用啊?请写出一个常见的例子的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server CASE .. WHEN .. IN 语句

oracle语句中when条件接不存在怎么写

SQL语句case怎么判断这个字段为空

SQL查询语句SELECT中带有case when嵌套子查询判断的问题

switch语句怎么用啊 具体啊!

sqlserver case when问题