有行。它们以逗号分隔的值分隔。我怎么只带一个例子。 (1)我的解决方案不起作用。
SELECT VB.COL
FROM (SELECT '21,31' AS COL
FROM DUAL
UNION ALL
SELECT '1' AS COL
FROM DUAL
UNION ALL
SELECT '21,31,1' AS COL
FROM DUAL
UNION ALL
SELECT '156,158' AS COL
FROM DUAL
) VB
WHERE VB.COL LIKE '%'||1||'%';
答案 0 :(得分:0)
将数字列表存储为以逗号分隔的字符串是一个坏主意。它不是存储列表的SQL方式。如果您对数据库有任何控制权,那么请创建一个正确的联结表。
有时,我们会遇到其他人糟糕的设计决定。在这种情况下,您可以使用LIKE
,但您应该包含分隔符:
WHERE ',' || VB.COL || ',' LIKE '%,' || 1 || ',%';
分隔符阻止“1”匹配“31”和“21”。
答案 1 :(得分:0)
我认为你想把输出字符串带到只有' 1'是可用的。 如果我错了,请告诉我。因为无法理解您所需的输出。如果需要,我会相应地更改查询。
S2