SQL Server高级内容之case语法函数概述及使用 |
本文标签:case,函数 1.Case函数的用法 2)执行的SQL语句是: 复制代码 代码如下: Select ID,TestBase, Case When testBase>=90 then ‘A When testBase>=80 then ‘B When testBase>=70 then ‘C When testBase>=60 then ‘D Else ‘E end as testBaseLevel, testBeyond,testDate from Score 3)最后的执行结果如图所示: ![]() (4)注意: 复制代码 代码如下: Select ID,Name,stuSex, case when stuSex=m then ‘男 when syuSex=f then ‘女 else ‘其它 end as stuSexType, stuDate from Student 。 (7)练习案例: 1)在数据库中执行这段代码: 复制代码 代码如下: use Test go create table PracticeTest ( number varchar(10), amount int ) insert into PracticeTest(number,amount) values(RK1,10) insert into PracticeTest(number,amount) values(RK2,20) insert into PracticeTest(number,amount) values(RK3,-30) insert into PracticeTest(number,amount) values(RK4,-10) 2)实现的效果如下: ![]() 3)可以看出,首先select中应该有三个字段,并且将数据大于0的放到收入中,那么另一个为0,并且将小于0的放到支出里面,另一个为0,下面我们写实现的SQL语句: 复制代码 代码如下: select number as 单号, case when amount>0 then amount else 0 end as 收入, case when amount<0 then -amount else 0 end as 支出 from PracticeTest (8)一道面试题的练习: 1)如图:我们写出下面执行的代码,数据库大家自己建或者我在下面附加脚本了,大家制药执行一下即可: 2)执行的SQL语句: 复制代码 代码如下: create table Score ( 学号 nvarchar(10), 课程 nvarchar(10), 成绩 int ) insert into Score values(0001,语文,87) insert into Score values(0002,数学,79) insert into Score values(0003,英语,95) insert into Score values(0004,语文,69) insert into Score values(0005,数学,84) 3)实现功能的SQL语句的书写 复制代码 代码如下: select 学号,sum( case when 课程=语文 then 成绩 else 0 end) as 语文,sum( case when 课程=数学 then 成绩 else 0 end) as 数学,sum( case when 课程=英语 then 成绩 else 0 end) as 英语 from score group by 学号 相信自己,你就是下一个奇迹! |