我有下表:
cs_id ; cs_values ; cs_desc --------------------------- 1; 'a,b,c'; 'one' 2; 'd,a'; 'two' 3; 'a,c'; 'three'
字段“cs_valies”包含不同的逗号分隔值.我想在“cs_values”中包含特定值的行上获取所有“cs_id”.
我用过这个表达式:
SELECT cs_id,regexp_split_to_table(cs_values,'*,*') as splitted_value WHERE splitted_value = 'a'
我有问题:
> Postgres不喜欢WHERE子句中的别名.或者有谁知道如何实现这一目标?
>有没有人有更好的想法来解决给定的问题?
谢谢大家,
我希望我不会遗漏一些非常明显的东西.
解决方法
Postgres does not like alias names in the WHERE-clause. Or has anyone an idea how to achieve this?
SELECT * FROM ( SELECT cs_id,*') as splitted_value ) t WHERE splitted_value = 'a'
Does anyone have a better idea to solve the given problem?
规范化您的表并将“逗号分隔列表”放入其自己的表中.这是一个经典的1:n关系
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。