如何将一个简单的引号(')添加到由逗号(,)分隔的字符串中,并在db2的IN子句中使用它

k0pti3hp  于 11个月前  发布在  DB2
关注(0)|答案(1)|浏览(89)

我有一个DB调用的问题:

NAME   | CONTENT
------------
Hello | value1,value2,value3

字符串
如何将值中的内容转换为与另一个查询IN子句一起使用。

SELECT *
FROM TABLE
WHERE VALUES IN ( SELECT CONTENT FROM PROBLEM WHERE NAME = 'HELLO');


我不知道子查询有什么问题,但我认为它返回一个字符串,它不工作。

SELECT '''' || REPLACE(CONTENT, ',', ''',''') || '''' AS CONTENT_WITH_QUOTES
FROM PROBLEM
WHERE NAME = 'HELLO';


这给了我这个 *'value 1','value 2','value 3'**这正是我需要的,但在子选择不喜欢它!

SELECT *
FROM TABLE
WHERE VALUES IN
    (SELECT '''' || REPLACE(CONTENT, ',', ''',''') || '''' AS CONTENT_WITH_QUOTES
     FROM PROBLEM WHERE NAME = 'HELLO')

5m1hhzi4

5m1hhzi41#

试试看:

SELECT *
  FROM TABLE t
    INNER JOIN PROBLEM p ON LOCATE(','||t.values||',', ','||content||',') > 0
  WHERE p.name='Hello'

字符串
基本上,您试图在“,value1,value2,value3,"中找到“,value,"。
我在开始和结束处加上逗号,以保证你不会在值“tomcat”中找到“cat”。

相关问题