对于MS SQL 2016
我有用户表'表TYPE t_Table(Id int,String nvarchar(max))'
我也有'f_get(@T t_Table)'函数
有一些代码...等效'STRING_AGG' - 由于SQL的版本,我无法使用此功能
当我使用类型t_Table ...
时,该函数工作正常 DECLARE @T t_Table
INSERT INTO @T
SELECT 1, 'John' UNION
SELECT 2, 'Mark'
SELECT f_get(@T)...
但我想在QUERY
中使用此功能 SELECT f_get(
SELECT 1, 'John' UNION
SELECT 2, 'Mark'
)
....但它不起作用
或在查询中
SELECT * FROM orders o
OUTER APLLY f_get(
SELECT ID, Name as String FROM table t WHERE t.OrderId = o.OrderId
)
有什么办法可以这样做吗? 谢谢 大卫
答案 0 :(得分:1)
不,你不可能做你想做的事。要将表传递给函数中的Table-Valued参数,必须将其传递给预期表类型的变量。您无法使用内联SELECT语句传递它。