我有一个UDF,它采用逗号分隔的列表并将其转换为行所以输出
select * from fnDrugSplit('one,two,three',',')
将会
one
two
three
当我尝试将这些结果插入到表变量中时
declare @drugName1 table(drugName1 varchar(50),drugName2 varchar(50))
insert into @drugName1(drugName1,drugName2)
values(
(select * from fnDrugSplit('one,two,three',',')
,(select * from fnDrugSplit('one,two,three',',')
)
我明白Incorrect syntax near ')'
了,最后一个括号封闭了该values
块。该函数将是确定性的,我不知道为什么会出现此错误,因为
declare @drugName1 table(drugName1 varchar(50),drugName2 varchar(50))
insert into @drugName1(drugName1,drugName2)
values(
(select 'one')
,(select 'two')
)
select * from @drugName1
工作正常。我在这里想念什么?
函数中的第二个参数是行的分隔符。SQL Server 2008