sql中的语句

时间:2016-09-13 12:27:41

标签: sql

有行。它们以逗号分隔的值分隔。我怎么只带一个例子。 (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||'%';

2 个答案:

答案 0 :(得分:0)

将数字列表存储为以逗号分隔的字符串是一个坏主意。它不是存储列表的SQL方式。如果您对数据库有任何控制权,那么请创建一个正确的联结表。

有时,我们会遇到其他人糟糕的设计决定。在这种情况下,您可以使用LIKE,但您应该包含分隔符:

WHERE ',' || VB.COL || ','  LIKE '%,' || 1 || ',%';

分隔符阻止“1”匹配“31”和“21”。

答案 1 :(得分:0)

我认为你想把输出字符串带到只有' 1'是可用的。 如果我错了,请告诉我。因为无法理解您所需的输出。如果需要,我会相应地更改查询。

S2