CSharp基础起步第二十一期---SqlServer 基础09(变量,case语句,
1.变量 声明:declare @UserName nvarchar(50) 赋值1:set @UserName=N'李':修改 赋值2:select @UserName=N'牛':修改 输出:print @UserName select @UserName select @UserName+N'中',这时@UserName仍然是‘李’,这句代码执行后显示‘李中’ 区别:赋值时,set比select更严谨些 变量是有作用域的 全局变量:@@*** 这些变量由系统维护,不需要我们管理,用于查看信息 @@version:查看版本信息 @@identity:查看当前的标识 @@servername:查看服务器名称 @@error:返回最后执行的一句代码的错误编号,如果没有出错返回0;如果被go中断,就不能用 @@rownumber:查看最后执行的一句代码的影响行数 ----------------------变量练习-------------------------------- declare @name nvarchar(10)='龌蹉' if(@name='好帅') begin print '原来是小雷' end else begin print '原来是小李' end //SqlServer中输出‘原来是小李’
2.case 在查询语句的select后面,可以进行选择判断的逻辑 语法1:判等 Case 列名 When … then … When … then … Else … End as 列别名 语法2:判不等 Case When 包含列名的逻辑表达式 then … When … then … else … End as 列别名 ----------------------变量练习-------------------------------- declare @name nvarchar(10)='龌蹉' if(@name='好帅') begin print '原来是小雷' end else begin print '原来是小李' end -------------------第一个练习 ?如果 成绩>100 优 ?如果成绩>90 良----------- select ? 英语成绩= case when TSEnglish>100 then '优' when TSEnglish>90 then '良' when TSEnglish>80 then '中' when TSEnglish>70 then '及格' when TSEnglish is NULL then '缺考' else '不及格' end from TblScore --------------------第二个练习 ?1 ?2 ?3 ---------------------------------- select *, 级别= ( case? when level=1 then '骨灰' when level=2 then '大侠' when level =3 then '菜鸟' end ) from user5 3.over子句 开窗函数:几个行作为一个区,就被称为一个窗,能够进行按行划区的函数就是开窗函数 排名函数:rank() over(order by 列名 desc),比row_number()函数更适合用于排名 over与聚合函数一起使用,但不要和group by 一组使用,否则会报错 没有分组的时候,就认为是将整个查询结果分成了一组 select *,sum(销售数量) from myOrders会报错 改为:select *,sum(销售数量) over from myOrders则不会报错,并且在最后一列显示求和结果 例:求每个销售员的销量:select *,sum(销售数量) over(partition by 销售员) from myOres select 销售员, 销售总金额=SUM(销售数量*销售价格), 称号= ( case? when SUM(销售数量*销售价格)>6000 then '金牌' when SUM(销售数量*销售价格)>5500 then '银牌' when SUM(销售数量*销售价格)>4500 then '铜牌' else '铁牌' end ) from MyOrders group by 销售员 欢迎关注趣味CSharp,完整笔记与您分享~~~~~~~~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |