2013-02-15 59 views
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值是在消息中打印但未进入选择查询...为什么?如何将数字字符串('14,72')转换为sql查询中的数字

+1

特别是任何SQL方言? – 2013-02-15 13:26:34

回答

0

你不能做你想做的。我建议你跳过查询的分割部分,只是做:

where ','[email protected]+',' 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)