2017-06-30 30 views
-1

DB2に文字列があります。 '1,2,3,45,64'。私のようなIN句でそれを使用したい:コンマ区切り文字列をカンマに変更するDB2のIN句で使用する区切り整数

Select * from table_name where column_name in (1,2,3,45,64) 

しかし、「1,2,3,45,64」行為を文字列として、文字列引数で見つかった

」無効な文字をスローします 機能「DECFLOAT」の。SQLSTATE = 22018"

+0

は、単一引用符でテーブルに格納された値はありますか? –

+0

いいえ、Columnのデータ型はvarchar(25) –

+1

です。[ストアドプロシージャのINパラメータとしてコンマ区切り値を渡す](https://stackoverflow.com/questions/17795712/passing-comma-separated-value -as-in-stored-procedure-in-stored-procedure) – mustaccio

答えて

0

あなたは、文字列の列値を見つけるために、機能を見つける使用することができますこんにちは、あなたはとき1ケースを避けるために、最初と最後に余分なコンマを追加する必要がありますし、 21の値が1に一致する可能性があります。基本的にvaあなたの列の中のlue 2はあなたの文字列中の '、2'部分文字列を探しています。関数findの部分文字列が開始位置を返した場合、それ以外の場合は-1を返します。

Select * from table_name where locate(','||column_name||',',',1,2,3,45,64,')>0 
0

これを試してみてください。

Select * from table_name 
where ',' || '1,2,3,45,64' || ',' like '%,' || yourcolumn || ',%' 
関連する問題