CASE表达式实现基于条件逻辑来返回一个值,case表达式
我们在开发过程中,经常需要针对一列,基于条件逻辑来返回一个值,那么,这时候就需要使用到CASE表达式了。
例如,以下对Products表的查询就在SELECT语句中使用了CASE表达式,以生成用于描述categoryid列取值的信息。
SQL代码如下:
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT productid,productname,categoryid, CASE categoryid WHEN 1 THEN 'Beverages' WHEN 2 THEN 'Condiments' WHEN 3 THEN 'Dairy Products' WHEN 4 THEN 'Confections' WHEN 5 THEN 'Grains/Cereals' WHEN 6 THEN 'Meat/Poultry' WHEN 7 THEN 'Produce' WHEN 8 THEN 'Seafood' ELSE 'Unkown Category' END AS categoryname FROM Production.Products;
查询结果:
if语句中的表达式不限于逻辑表达式,可以是任意的数值类型
可以是任意数值,但实际上编译系统会把这个表达式强制转成逻辑值,一般地false都为0;1或任何非零数值都是true,具体要看什么语言的。
判断题
1.if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。【Y 】
2.switch语句可以用if语句完全代替。【Y 】
3.switch语句的case表达式必须是常量表达式。【 Y】
4.if语句,switch语句可以嵌套,而且嵌套的层数没有限制。【Y 】
5.条件表达式可以取代if语句,或者用if语句取代条件表达式。【N 】
6.switch语句的各个case和default的出现次序不影响执行结果。【N 】
7.多个case可以执行相同的程序段。【Y 】
8.内层break语句可以终止嵌套的switch,使最外层的switch结束。【 N】
9.switch语句的case分支可以使用{ }复合语句,多个语句序列。【Y 】
10.switch语句的表达式与case表达式的类型必须一致。【Y 】
11.在switch多分支中,break语句可使流程立即跳出switch语句体。【Y 】
12.if (a=<b) x++;是合法的C语句。【 N】
13.if必须有else与之配对。【N 】
错误:case 值“1”已使用
'a'||'A'和'b'||'B'和'c'||'C'这3个表达式都是一个逻辑表达式,它们的值都是1,所以就会出现这样的提示,要想实现你这样的功能,可以这样
case 'a':
case 'A':
cout << "成绩为90-100。";
break;
case 'b':
case |'B':
cout << "成绩为80-90。";
break;
case ‘c':
case 'C':
cout << "成绩为70-60。";
break;
default :
cout << "成绩为不及格!";