2012-03-19 170 views
0

我想将两列的结果分配给两个变量。我在游标循环块中有几个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 

有什么建议吗?

回答

2

你需要为你使用MAX这是一个Agreegate功能使用的GroupBy。

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 

注意:如果查询返回多行,上面的查询将失败。