如何通过在表 A 的列中查找逗号分隔值来从表 B 返回值
Posted
技术标签:
【中文标题】如何通过在表 A 的列中查找逗号分隔值来从表 B 返回值【英文标题】:How to return values from table B by looking up comma separated values in a column in table A 【发布时间】:2018-11-06 23:03:52 【问题描述】:我不确定我的问题是否有意义,但我会在这里尝试解释一下。我有两张桌子
表SAM (SR PK,CODE)
。 CODE
列可能包含也可能不包含逗号分隔值。
表FOO (CODE_VAL PK, CODE_DISP_TX)
我想写一个选择查询来给我 FOO WHERE SAM.SR = 3
的以下输出
【问题讨论】:
【参考方案1】:修复您的数据模型!将列表存储为字符串是一个非常非常糟糕的主意。
有时,我们会被其他人非常非常糟糕的决定所困扰。你可以这样做:
select f.*
from foo f
where exists (select 1
from sam s
where ',' || code || ',' like '%,' || f.code || ',%'
);
【讨论】:
谢谢,该表只有 5 个列表值,以后不会再添加,因此将这些值存储为列表。但我明白你在说什么。非常感谢!以上是关于如何通过在表 A 的列中查找逗号分隔值来从表 B 返回值的主要内容,如果未能解决你的问题,请参考以下文章