postgresql - Postgres 在由 regexp_split_to_table 分割的列中搜索

标签 postgresql alias where-clause

我有下表:

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'

我有问题:

  1. Postgres 不喜欢 WHERE 子句中的别名。或者有人知道如何实现这一目标吗?
  2. 有没有人有解决给定问题的更好主意?

谢谢大家 我希望我没有遗漏一些极其明显的东西。

最佳答案

Postgres does not like alias names in the WHERE-clause. Or has anyone an idea how to achieve this?

SELECT * 
FROM (
   SELECT 
      cs_id,
      regexp_split_to_table(cs_values, '* , *') as splitted_value
) t
WHERE
   splitted_value = 'a'

Does anyone have a better idea to solve the given problem?

规范化您的表格并将“逗号分隔列表”放入其自己的表格中。这是一个经典的 1:n 关系

关于postgresql - Postgres 在由 regexp_split_to_table 分割的列中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475550/

相关文章:

postgresql - 使用 psql 数组将 pq 迁移到 pgx 的问题

MySql - 对多列使用 ALIAS

Linux别名链命令(可以避免递归吗?)

mysql - SQL Select Query中的Where条件算法

postgresql - 如何在 PostgresQL 10 中备份分区表

python - 如何将Postgres bytea数据或Python memoryview对象转换为NumPy数组?

postgresql - Postgres 要求输入密码,即使 pg_hba.conf 说信任

C++:为什么禁止递归模板化别名?

postgresql - 内部连接的 SQL where 子句

android - 靠近 "WHERE": syntax error - SQLite