将sp结果组合为select列

时间:2014-12-23 17:11:29

标签: sql sql-server sql-server-2008 stored-procedures

我正在尝试将sp作为子查询执行,并将sp的结果集视为外部查询的列。像这样的事情

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

这是否可能我搜索了很多但在谷歌上找不到任何东西。

更新

我不能使用#temp表,因为我试图没有#temp表

3 个答案:

答案 0 :(得分:0)

不可能,但你可以解决它

  • 创建一个临时表&将程序的结果插入 它
  • 现在将User表与临时表一起加入并选择
    你想要从两个表中的列

但是,假设您有一个从存储过程返回的可连接表达式(您可以匹配到用户表中的字段)。如果存储过程on返回单行,则使用1 = 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

答案 2 :(得分:0)

如果您能够将USP转换为表值UDF,那么您将在FROM语句中使用UDF。

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