注册 登录
编程论坛 SQL Server论坛

select 一个简单的查询输入的列的属性名称不同时,输出结果的形式不一样,为什么??

花脸 发布于 2017-03-23 21:35, 2385 次点击
declare @score int,@jg char(6)
set @score=90
 select jg=
case
when @score>=90and @score<=100then'优秀'
when @score>=80and @score<=90then'优秀'
when @score>=70and @score<=80then'优秀'
when @score>=60and @score<=70then'优秀'
else
  '不及格'
end
print'成绩等级='+@jg
  这段代码 一个是select @jg= 另一个是 select jg=  为什么输出的结果不一样呢?
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
7 回复
#2
mywisdom882017-03-23 22:03
select jg='优秀'
输出的是1个表,jg 是字段名称
select @jg ='优秀'
print @jg
是变量 @jg='优秀',和 set @jg='优秀',相同,是赋值, print @jg只是显示变量的值
#3
花脸2017-03-23 23:04
回复 2楼 mywisdom88
select @jg ='优秀'

如果定义这个 能不能也输出一个表
#4
azzbcc2017-03-23 23:49
不能,话说自己执行就知道了啊。
#5
mywisdom882017-03-24 14:32
以下是引用花脸在2017-3-23 23:04:40的发言:

select @jg ='优秀'

如果定义这个 能不能也输出一个表

select @jg ='优秀'
是不会输出1个表的,他是1个赋值语句,他和SET的区别是:他可以同时个多个变量赋值,但SET只能给1个变量赋值,如
select @a1='aa',@a2='bb',@a3='cc'
set @a1='aa'
set @a2='bb'
set @a3='cc'
还有就是 select @a1='aa'可以从表的查询结果赋值给变量
select @max=max(字段1),@min=min(字段1) from SQL表

#6
花脸2017-03-26 17:48
回复 5楼 mywisdom88
  好的 谢谢你
#7
tlliqi2017-03-27 07:07
回复 3楼 花脸
自己执行就知道了
#8
花脸2017-03-27 16:13
回复 7楼 tlliqi
嗯呢   好的。
1