Postgresql用于对字符串中的字符进行排序的函数

时间:2017-06-01 03:36:55

标签: postgresql sorting

是否有postgresql函数,最好是原生函数,可以将'banana'等字符串排序为'aaabnn'?

排序的算法效率并不重要,因为单词永远不会太长。但是,数据库连接效率有一些但并不重要。

1 个答案:

答案 0 :(得分:3)

没有具有此类功能的本机功能,但您可以使用regexp_split_to_table执行此操作:

select theword 
  from (select regexp_split_to_table('banana',E'(?=.)') theword) tab 
 order by theword;

结果将是:

theword
   a
   a
   a
   b
   n
   n

(?=.)将按每个字符拆分,并将该字符作为分隔符。它还将识别空间。如果你有一个带空格的单词并且不想要它(空格),使用E'(\\s*)'匹配任何空格字符。我不记得E的含义。我会尽快搜索和编辑答案。

如“regexp_split_to_table”部分DOCs中所述

编辑:正如我所说:E在字符串之前的含义,你可以在这里看到:What's the "E" before a Postgres string?