如何在postgres中排序(order by)忽略像“the,a,etc”这样的前导词

时间:2011-08-18 19:34:55

标签: postgresql sql-order-by

我希望能够在postgres中排序(排序)忽略像“the,a,etc”这样的主要词汇

4 个答案:

答案 0 :(得分:4)

单向:脚本(使用您喜欢的语言)创建一个额外的文本列,删除了干扰词,并对其进行排序。

答案 1 :(得分:0)

添加一个SORT_NAME列,其中包含所有内容。对于奖励积分,使用输入触发器自动填充它,使用您喜欢的SQL方言的正则表达式解析器或类似物。

答案 2 :(得分:0)

尝试拆分列并对结果数组中的第二项进行排序:

select some_col from some_table order by split_part(some_col, ' ', 2);

答案 3 :(得分:0)

无需添加额外的列。删除ORDER BY中的主要字词:

SELECT col FROM table ORDER BY REPLACE(REPLACE(col, 'A ', ''), 'The ', '')