2013-02-15 61 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)