将TableType设置为
create type KeyPairTable as Table (KeyValue nvarchar(50),
[Description] nvarchar(500))
我有一张可以简化为
的表格create table Elements (SharedKey int,
ElementName nvarchar(50),
SourceSQL nvarchar(500))
我有一个标题
的函数create function RunElement(@SharedKey int,
@ValuesTable KeyPairTable readonly)
现在我需要做的是:
select RunElement(SharedKey,
case when SourceSql is not null then [X]
else [Y]
end) from Elements
其中[X]采用存储在SourceSQL中的SQL语句并将其作为KeyPairTable传递,[Y]是一个空表(例如,它不会被使用/不需要)
我想避免使用游标/循环并在select中执行此操作,因为这是问题的简化,而select实际上连接了几个表。
答案 0 :(得分:0)
我要问的是如何让'table'传递到其中的一个函数中 选择
好的,你的示例代码中有一些部分对我来说仍然没有意义,但我相信这个例子应该是你想要的(或者你能理解得足够近。)
DECLARE @myTable KeyPairTable
INSERT INTO @myTable (KeyValue, [Description])
SELECT SharedKey,
CASE WHEN SourceSql IS NULL THEN [X] ELSE [Y] END
FROM Elements
SELECT RunElement(SharedKey, @myTable)