0
 declare @lkaklf as varchar(Max)
 Select ss.Data from SplitString('14,72', ',') as ss

 Select @lkaklf = CONVERT(varchar, COALESCE( + @lkaklf + ',', '') + '''' + Data + '''') From
 (
    Select Data from SplitString('14,72', ',') 
 )de
 select @lkaklf
 print @lkaklf
 Select * from LPO Where CONVERT(varchar, LPO.LocalPurchaseOrderId) in (@lkaklf)

@lkalf 值是在消息中打印但未进入选择查询...为什么?

4

1 回答 1

0

你不能做你想做的事。我建议您跳过查询的拆分部分,然后执行以下操作:

where ','+@lkaklf+',' like ','+cast(LPO.LocalPurchaseOrderId as varchar(255))+',%'

也就是说,只使用字符串比较。

如果你真的想使用SplitString(),那么将结果放在一个临时表中:

insert into @t
    select data from splitstring('14,72', ',')

然后使用子查询:

where cast(@lkalklf as varchar(255)) in (select data from @t)
于 2013-02-15T13:17:34.287 回答