2014-12-23 55 views
0

我試圖執行sp作爲子查詢,並將sp的結果集作爲外部查詢的列。這樣結合sp結果select作爲列

Select U.FirstName , (exec SomeSP) as columnFromSP from User U

有些事情是這樣的可能,我搜索了很多,但發現在谷歌沒有。

更新

因爲我想沒有#TEMP表

+0

你不能這樣做。您必須更改SP或將結果存儲在臨時表中並加入您的用戶表 – jazzytomato

+0

您可以將您的SomeSP轉換爲表值函數,然後可以在沒有臨時表的情況下執行此操作。 –

+0

肖恩你可以添加任何示例? – Ancient

回答

0

如果您能夠將您的USP轉換爲表值UDF,你會使用UDF在FROM聲明。

CREATE FUNCTION dbo.SomeUDF 
( 
    -- Add the parameters for the function here 
    @param varchar(1000) 
) 
RETURNS TABLE 
AS 
RETURN 
(

    SELECT @param as Value 
) 
GO 

SELECT 
    a.Value, 
    'B' as Value2 
FROM dbo.SomeUDF('ABC') a 
0

不可能做我不能使用#temp表,但你可以解決它

  • 創建臨時表&將程序結果插入 它
  • 現在將用戶表與臨時表連接起來,並將se兩個表

但是這是假定LECT你想要的
列,你必須從存儲過程(一個你可以匹配到一個字段在用戶表)返回一個可連接的表達。如果返回單行存儲過程中,使用的類似1 = 1或某事的條件

0
-- Declare a temp table and column(for eg you have only 1 column) 
CREATE TABLE #TEMP 
(
    FirstName VARCHAR(50)  
) 

-- The results after execution will be inserted to this table 
INSERT INTO #TEMP 
Exec SomeSP 'Params' 

-- Select records from both tables in all combinations 
SELECT U.FirstName , COL1 as columnFromSP 
from User U 
CROSS JOIN #TEMP 
+0

我修改了結果。你可以試試這個@Ancient –