PLSQL中,select case..when.. then..什么意思?怎么用?

最好写个式子出来,一看就能懂的那种,答案满意的加50分... 最好写个式子出来,一看就能懂的那种,答案满意的加50分 展开
 我来答
freechan10
2019-11-14 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.9万
展开全部

case when ... then .. when .. then ... end

这种表达式,是sql的不同条件分支结果。

举例如下,

1、创建数据表,create table test_student(stu_id number, class_id number);

2、插入测试数据,

insert into test_student values(1,1001);

insert into test_student values(2,1001);

insert into test_student values(3,1002);

insert into test_student values(4,1003);

insert into test_student values(5,1003);

insert into test_student values(6,1003);

3、查询表中数据,select * from test_student ,

4、编写case when 表达式,将class_id翻译为中文名称,sql如下,

select t.*,

       case

         when class_id = 1001 then

          '语文'

         when class_id = 1002 then

          '数学'

         when class_id = 1003 then

          '英语'

       end as class_name

  from test_student t;

百度网友fb85a79
推荐于2018-03-01 · TA获得超过2600个赞
知道小有建树答主
回答量:684
采纳率:0%
帮助的人:316万
展开全部
case 是SQL国际标准就有的,他的作用就是实现条件语句(如同一般计算机语言中的if和switch……case)按照不同的使用方法case有两种语法:
1.简单case语法是
就是实现相当于一般计算机语言中switch……case样式的,格式是
case 变量表达式 --对某个‘变量表达式’进行判断
when 值 --当‘变量表达式’是某个‘值’时
then 返回值表达式 --返回‘返回值表达式’值
[when...
then...
.....] --可以进行多次判断
[else 其他情况返回值表达式] --不符合所有when后面的就是其他情况了
end --结束

举例,比如一个表的sex列用M表示男性,F表示女性,现在不要返回MF而是想返回男女就可以:
select (case sex when 'M' then '男' when 'F' then '女' end) from 表
2 case搜索函数
就是实现相当于一般计算机语言中if……elseif……样式的,格式是
case --case后面没有表达式表示使用的是搜索函数
when 条件 --条件就是布尔表达式,也就判断语句
then 返回值表达式 --条件为真时的返回该表达式值
[when ...
then ...
.........] --可以进行多次判断
[else 其他情况返回值表达式]--不符合所有when后面的就是其他情况了
end -- 结束

同样的以性别为例
select (case when sex='M' then '男' when sex = 'F' then '女' end) from 表
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
radeon_ling
2010-10-31 · 超过13用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:31.1万
展开全部
case when语句和判断有关比如:
USE AdventureWorks;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO

这句话其实意思很简单,就是对每一行中的ProductLine字段进行匹配,如果等于R就替换成Road,如果不是R,M,T,S的话,就替换为Not for sale。

祝你好运,朋友!

I am Radeon Ling

La Vie en Rose
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式