2017-05-23 99 views
-1

我有一個返回x列數的select語句。我也有一個使用3個id的SP,select語句返回給出一個整型結果。我將如何改變下面的陳述來完成這個?看起來在其他地方在線說使用函數,但函數只返回1結果...?選擇語句中的存儲過程

SELECT col1, col2, col3, y, EXEC sp_result_given_col1_col2_col3 
FROM TABLE 
WHERE col1 = x 
+1

我會的程序轉換爲內聯表值函數(如果可能的話),並使用'交叉應用()'。 – SqlZim

+0

@SqlZim - 你爲什麼要那樣做? – Hogan

+0

@Hogan我假設OP想要執行的過程的結果從表中的多個行。根據您的答案,從一行值的值作爲參數不是單個執行過程。 – SqlZim

回答

1

這樣的:

SELECT @v1 = col1, @v2 = col2, @v3 = col3, y, 
FROM TABLE 
WHERE col1 = x; 

EXEC sp_result_given_col1_col2_col3 @v1, @v2, @v3; 

這裏假設你的查詢只給一個行的結果。

多行你將不得不使用遊標。

注:使用SQL遊標通常表明一個貧窮的設計