【发布时间】:2017-01-13 19:48:07
【问题描述】:
我有一个返回查询的标量函数。标量函数必须返回查询本身而不是其结果,因为它使用动态 SQL 并且变量用作列名和表名。
所以,我有这样的事情:
SELECT t.id,
dbo.queryToExecute(t.id, t.ColumnToFetch, t.TableToFetchFrom) QueryToExecute
FROM Table t
返回
| ID | QueryToExecute
| 1 | SELECT ColumnName1 FROM Table1 WHERE id = 1
| 2 | SELECT ColumnName2 FROM Table2 WHERE id = 2
而“QueryToExecute”返回单个值。 我想做类似的事情:
SELECT t.id,
EXEC(dbo.queryToExecute(t.id, t.ColumnToFetch, t.TableToFetchFrom)) ExecutedQuery
FROM Table t
所以结果集将是:
| ID | ExecutedQuery
| 1 | Jacob
| 2 | Sarah
我该怎么做?
我已经有一个存储过程,可以在我需要单独运行时完成工作,但我想在标量函数上使用相同的东西,以便能够将子结果嵌入到更复杂的查询中。
谢谢!
【问题讨论】:
标签: sql sql-server tsql