我想将两列的结果分配给两个变量。我在游标循环块中有几个TSQL语句。当@currentId(当前行Id)等于tablea中的max(col1)时,我想得到tableb.col2的值。
SELECT MAX(col1), b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id
WHERE ta.id = @currentId
上述方法当然不起作用。另外,我不知道如何检索col1和col2的值。数据类型是:
col1 int
col2 bit
有什么建议吗?
答案 0 :(得分:2)
您需要使用GroupBy,因为您正在使用MAX,这是一个Agreegate函数。
Declare @valCol1 INT, @valCol2 INT
SELECT @valCol1 = MAX(col1), @valCol2 = b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id
WHERE ta.id = @currentId
PRINT @valCol1
PRINT @valCol2
注意:如果查询返回多行,则上述查询将失败。