首页 > 解决方案 > 按表达式排序的列连接。这是错的吗?

问题描述

我是否像这样使用 Order by 表达式有什么优点和缺点:

select * from table1
order by column1 || column2 || column3 || column4

或以这种方式:

select * from table1
order by column1, column2, column3, column4

每一项对性能有何影响?

标签: sqlpostgresql

解决方案


串联是不必要的,可能会产生不正确的结果。例如,考虑以下值:

abc       a     b     c
ab        d     e     f

串联将第一行放在第一位。通过单独的键,它将第二个放在第一位。

order by如果order by可以使用索引,它可以减慢速度。


推荐阅读