如何通过在表A的列中查找逗号分隔的值来返回表B的值

时间:2018-11-06 23:03:52

标签: sql oracle lookup oracle12c

我不确定我的问题是否有意义,但我将尝试在此处进行解释。我有两个桌子

SAM (SR PK,CODE)CODE列可能包含也可能不包含逗号分隔的值。

TABLE SAM

FOO (CODE_VAL PK, CODE_DISP_TX)

TABLE FOO

我想编写一个选择查询,以便向我提供以下FOO WHERE SAM.SR = 3的输出

Output

1 个答案:

答案 0 :(得分:4)

修复您的数据模型!将列表存储为字符串是一个非常非常糟糕的主意。

有时候,我们会被别人的非常非常糟糕的决定所束缚。您可以这样做:

select f.*
from foo f
where exists (select 1
              from sam s
              where ',' || code || ',' like '%,' || f.code || ',%'
             );