将逗号分隔的字符串更改为逗号分隔的整数,以便在DB2中的IN子句中使用

时间:2017-06-30 09:28:43

标签: db2

我在DB2' 1,2,3,45,64'中有一个字符串。我想在IN子句中使用它,如:

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

但是' 1,2,3,45,64'充当字符串并抛出

  

"在字符串参数中找到无效字符   功能" DECFLOAT"。 SQLSTATE = 22018"

2 个答案:

答案 0 :(得分:0)

您可以使用locate函数查找字符串中的列值,您必须在开头和结尾添加额外的逗号以避免在1和21可能匹配值为1的情况下。基本上如果您有值在您的专栏中,您正在寻找',2,'字符串中的子字符串。如果函数find的子字符串返回它的起始位置,否则返回-1。

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

答案 1 :(得分:0)

试试这个:

Select * from table_name 
where ',' || '1,2,3,45,64' || ',' like '%,' || yourcolumn || ',%'