加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

CSharp基础起步第二十一期---SqlServer 基础09(变量,case语句,

发布时间:2020-12-12 13:07:05 所属栏目:MsSql教程 来源:网络整理
导读:1.变量 声明:declare @UserName nvarchar(50) 赋值1:set @UserName=N'李':修改 赋值2:select @UserName=N'牛':修改 输出:print @UserName select @UserName select @UserName+N'中',这时@UserName仍然是‘李’,这句代码执行后显示‘李中’ 区别:赋


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,完整笔记与您分享~~~~~~~~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读