我試圖執行sp作爲子查詢,並將sp的結果集作爲外部查詢的列。這樣結合sp結果select作爲列
Select U.FirstName , (exec SomeSP) as columnFromSP from User U
有些事情是這樣的可能,我搜索了很多,但發現在谷歌沒有。
更新
因爲我想沒有#TEMP表
我試圖執行sp作爲子查詢,並將sp的結果集作爲外部查詢的列。這樣結合sp結果select作爲列
Select U.FirstName , (exec SomeSP) as columnFromSP from User U
有些事情是這樣的可能,我搜索了很多,但發現在谷歌沒有。
更新
因爲我想沒有#TEMP表
如果您能夠將您的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
不可能做我不能使用#temp表,但你可以解決它
但是這是假定LECT你想要的
列,你必須從存儲過程(一個你可以匹配到一個字段在用戶表)返回一個可連接的表達。如果返回單行存儲過程中,使用的類似1 = 1或某事的條件
-- 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
我修改了結果。你可以試試這個@Ancient –
你不能這樣做。您必須更改SP或將結果存儲在臨時表中並加入您的用戶表 – jazzytomato
您可以將您的SomeSP轉換爲表值函數,然後可以在沒有臨時表的情況下執行此操作。 –
肖恩你可以添加任何示例? – Ancient