渣渣新手,百度了没找到答案。。。
无法从select 语句返回结果集,无法在同一个select语句中为变量赋值。这句话是什么意思。。。?
select make,
@model = model --wrong 这里为什么是wrong...?
from dbo.equipment
where eqid = 2
谢谢喽~
------解决思路----------------------
对,但是有很大不确定性.就是要赋值为最后一条记录的值,一般也是选top 1 … order by 字段名 desc
------解决思路----------------------
select make,
@model = model --wrong 这里为什么是wrong...?
from dbo.equipment
where eqid = 2
头一个是 make ,系统就认为你这是一个普通的查询,而不是赋值。 但是你后又使用了变量@model ,系统会认为你要把 @model 做为一个列的别名来用,别名是不能以@开头的。
总之一句话:查询多列时,要么都赋给变量,要么是一个普通查询(可以取别名,也可不取别名,也可以部分列取别名)。
------解决思路----------------------
实际是多了make字段,去掉就对了,可以取model字段的最后一个值
------解决思路----------------------
@model 需要事先定义
比如 declare @model varchar(50)
------解决思路----------------------
这种情况只适合返回一条数据情况
------解决思路----------------------
要么赋值
select @model = model
from dbo.equipment
where eqid = 2
要么返回数据集
select make
from dbo.equipment
where eqid = 2
一条SQL语句二者只能选其一