为变量赋值的select语句不能与数据检索相结合

时间:2015-06-04 14:23:27

标签: sql-server

例如,我有一个变量@rev用于数据retieval,如Query

中所示

“选择不同的@ accNo,sick_id,desc_id,'Lab',labname,lr.Result,'positive','false',@ sex

@rev = DATEDIFF(day,@ admitdate,lr.LabDateTime)< 0然后1其他DATEDIFF(day,@ admitdate,lr.LabDateTime)结束时的情况

我想在同一个选择查询WHERE子句中使用此变量作为

L.admitdate和DATEADD之间的L.LabDateTime(HH,24 * @ rev ,@ admitdate)

我可以在那里得到那个var值吗?

1 个答案:

答案 0 :(得分:1)

当您将SELECT语句中的列值分配给局部变量但未将所有列分配给相应的局部变量时,会发生此错误。

可能你可以尝试这种方式

select @rev=case when DATEDIFF(day,@admitdate,lr.LabDateTime)<0 then 1 else DATEDIFF(day,@admitdate,lr.LabDateTime) end
select distinct @accNo,illness_id,desc_id,'Lab',labname,lr.Result,'positive','false',@sex,@rev