case语句是什么?

case语句是什么?,第1张

case语句是多分支选择语句。case语句是多分支选择语句,if语句只有两个分支可供选择,而实际问题中常常需要用到多分支选择结构。

例如,学生成绩分类(90分以上为A,……);人口统计分类(按年龄分为老、中、青、少、幼)等。当然这些都可以用if语句的嵌套形式来实现,但如果分支较多,则嵌套的if语句层数太多,程序冗长而降低了可读性,也给修改带来了极大的困难。

Pascal语言提供了case语句可直接处理多分支选择,case语句由一个选择表达式和众多可选择的 *** 作序列组成,运行时根据表达式的求值结果,在众多的分支中选取一个分支执行。

说明:

1、case的英文意义有“情况”、“情形”之意,我们可能这样理解case语句:当表达式的值与常数表中某一值相匹配,则执行其后面的相应语句;如果常数表中没有与表达式相匹配的常数,则执行else后面的相应语句。

2、else可以省略,此时若无与表达式的值相匹配的常数表时程序将向下运行并跳出case语句。

3、保留字end与保留字case成对出现,这个end表示case语句的结束。

SELECT

'Price

Category'

=

CASE

WHEN

price

IS

NULL

THEN

'Not

yet

priced'

WHEN

price

<

10

THEN

'Very

Reasonable

Title'

WHEN

price

>=

10

and

price

<

20

THEN

'Coffee

Table

Title'

ELSE

'Expensive

book!'

END

先说下,case要和end一块用。

从上面可以看出,case里用的是when

then

形式,从整个case

end来看,它是从自己的多个语句中择一输出结果。

如果是把when

看成if

,就好理解多了,if语句就像是筛子里的石子,而case

end就是筛子,只会允许一个符合它网眼大小的石头出去,并且会将这个石子打包成一个可用的表达式。

不知道你具体什么数据库,,给出sqlserver,你上面写的就对了,

给你写出详细的测试记录吧

CREATE TABLE test(a INT,b VARCHAR(10))

INSERT INTO dbo.test

( a, b )

SELECT 1,'a'

UNION ALL

SELECT 2,'b'

UNION ALL

SELECT null,'c'---这里加了一条数据,便于你看出结果

SELECT a,b,c=(CASE WHEN ISNULL(a,'')='' THEN null ELSE b END)--注个人喜欢用isnull()函数

FROM test结果:

1

a

a

2

b

b

NULL

c

null


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9568668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存