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 に答える