码迷,mamicode.com
首页 > 数据库 > 详细

SQL中关键字Case的使用

时间:2016-06-18 23:41:25      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

本文非原创

 

它主要用来简化SQL表达式,在任何允许使用表达式的地方均可使用,
根据条件的不同返回不同的值。

注意:它不能单独执行,只能作为语句的一部分使用,
分为简单 case 表达式和搜索 case 表达式。

1.简单 case 表达式:

它是一个测试表达式与一组简单表达式进行比较,如果和某一个值相等,
则返回对应表达式的值。


语法: case 表达式 / 列名变量
when 测试值1 then 结果表达式1
when 测试值2 then 结果表达式2
……
else 结果表达式
end

例:(1)select 姓名=case book_name
when ‘++c‘ then ‘c语言‘
when ‘hello‘ then ‘hahaha‘
when ‘hello1‘ then ‘sdf‘
when ‘hello2‘ then ‘haasdfghaha‘
else ‘没有值‘
end from yuesubiao

(2)declare @aa varchar(10)
set @aa=(select egg_name from egg where egg_shu=14)
select case @aa
when ‘hhh‘ then ‘1111‘
when ‘ll‘ then ‘222‘
else‘aaaaaaaaaaaaaaa‘
end



2.搜索 case 表达式:

它是一个测试表达式与一组搜索布尔表达式进行比较,
如果和某一个值相等,则返回对应表达式的值。


语法: case
when 布尔表达式1 then 结果表达式1
when 布尔表达式2 then 结果表达式2
……
else 结果表达式
end

 

例: (1) select egg_name,egg_liang,所得税=
case
when (egg_zhong<=500) then ‘1111111‘
when (egg_zhong<=5000) then‘222222‘
when (egg_zhong<=50000) then‘33333333‘
else‘444444‘
end
from egg

 

(2) select book_name,www=
case
when left(ltrim(book_addr),3)=‘hgf‘ then ‘123‘
when left(ltrim(book_addr),3)=‘hhh‘ then ‘456‘
when left(ltrim(book_addr),3)=‘456‘ then ‘789‘
else‘AAAAAAAA‘
end
from YI

 

下面博文讲了Case的常见使用情况,很不错。

http://www.cnblogs.com/Ronin/archive/2006/07/20/455388.html#2810859

http://www.cnblogs.com/Ronin/archive/2006/07/20/455756.html

 

SQL中关键字Case的使用

标签:

原文地址:http://www.cnblogs.com/xieyuanzheng/p/5597050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!