2012-03-19 131 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 

注意:如果查詢返回多行,上面的查詢將失敗。