小编Ric*_*ard的帖子

在postgresql中对使用array_agg创建的文本聚合进行排序

我在postgresql中有一个表.下表"动物"将解释我的问题:

name
------
tiger
cat
dog
Run Code Online (Sandbox Code Playgroud)

现在我使用以下查询:

SELECT
    array_to_string(array_agg("name"), ', ')
FROM
    animals;
Run Code Online (Sandbox Code Playgroud)

结果是:"老虎,猫,狗".但我希望在将聚合转换为字符串之前对其进行排序.所以这是我希望的结果:

"cat, dog, tiger".
Run Code Online (Sandbox Code Playgroud)

那么如何在将postgresql 8.4转换为字符串之前对其进行排序.行"name"上的ORDER BY不起作用,内置排序函数仅处理整数值.

任何人都好主意,如何在纯SQL中解决这个问题?

理查德很多

postgresql

24
推荐指数
2
解决办法
2万
查看次数

Postgres在regexp_split_to_table拆分的列中搜索

我有下表:

cs_id ; cs_values ; cs_desc
---------------------------
     1;    'a,b,c';   'one'
     2;      'd,a';   'two'
     3;      'a,c'; 'three'
Run Code Online (Sandbox Code Playgroud)

字段"cs_valies"包含不同的逗号分隔值.我想在"cs_values"中包含特定值的行上获取所有"cs_id".

我用过这个表达式:

SELECT
   cs_id,
   regexp_split_to_table(cs_values, '* , *') as splitted_value
WHERE
   splitted_value = 'a'
Run Code Online (Sandbox Code Playgroud)

我有问题:

  1. Postgres不喜欢WHERE-clause中的别名.或者有谁知道如何实现这一目标?
  2. 有没有人有更好的想法来解决给定的问题?

谢谢大家,我希望我不会遗漏一些非常明显的东西.

postgresql alias where

5
推荐指数
1
解决办法
7098
查看次数

标签 统计

postgresql ×2

alias ×1

where ×1