【问题标题】:How to return values from table B by looking up comma separated values in a column in table A如何通过在表 A 的列中查找逗号分隔值来从表 B 返回值
【发布时间】:2018-11-06 23:03:52
【问题描述】:

我不确定我的问题是否有意义,但我会在这里尝试解释一下。我有两张桌子

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

FOO (CODE_VAL PK, CODE_DISP_TX)

我想写一个选择查询来给我 FOO WHERE SAM.SR = 3 的以下输出

【问题讨论】:

    标签: sql oracle lookup oracle12c


    【解决方案1】:

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

    有时,我们会被其他人非常非常糟糕的决定所困扰。你可以这样做:

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

    【讨论】:

    • 谢谢,该表只有 5 个列表值,以后不会再添加,因此将这些值存储为列表。但我明白你在说什么。非常感谢!
    猜你喜欢
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多