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

问题描述 投票:0回答:1

我有这个数据库称为问题:

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';

这给了我这个 'value1','value2','value3' 这正是我需要的,但在子选择中不喜欢它!

SELECT *
FROM TABLE
WHERE VALUES IN
    (SELECT '''' || REPLACE(CONTENT, ',', ''',''') || '''' AS CONTENT_WITH_QUOTES
     FROM PROBLEM WHERE NAME = 'HELLO')
sql db2
1个回答
0
投票

尝试:

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

基本上,您正在尝试在“,value1,value2,value3,”中查找“,value,”。

我在开头和结尾附加逗号以保证您不会找到 e。 G。值“tomcat”内的“cat”。

© www.soinside.com 2019 - 2024. All rights reserved.