【发布时间】:2013-12-13 20:26:16
【问题描述】:
已将 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] 是一个空表(例如,它不会被使用/不需要)
我想避免游标/循环并在选择中执行此操作,因为这是对问题的简化,并且选择实际上连接了多个表。
【问题讨论】:
-
这里有些可疑,也许只是命名,但是您的 KeyPairTable (我希望它有一个键和一个值)似乎只有一个值而没有键 - 或者 KeyValue 实际上意思是钥匙?
-
KeyValue 是 'Key' 而 Description 是 'Value'... 但是 'Key' 和 'Value' 作为 sql 中的保留字,因此我自己的自定义列名,顺便说一句,这是一个简化的示例,我要问的是如何让一个“表”传递给一个选择中的函数
标签: sql-server sql-server-2012 sql-server-2012-express