此查询:
with labels (label) as (
values
('Asphalt Layer 2 - Labor (Hr)'::text),
('Asphalt Layer 2 - Labor Rate ($/Hr)'::text),
('Asphalt Layer 2 - Labor Cost'::text)
)
select *
from labels
order by 1;
按以下顺序对值进行排序:
Asphalt Layer 2 - Labor Cost
Asphalt Layer 2 - Labor (Hr)
Asphalt Layer 2 - Labor Rate ($/Hr)
正确的顺序是(也用JavaScript检查):
Asphalt Layer 2 - Labor (Hr)
Asphalt Layer 2 - Labor Cost
Asphalt Layer 2 - Labor Rate ($/Hr)
我使用的AWS RDS Postgres版本如下:PostgreSQL 11.16 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12), 64-bit
这会导致交叉表查询中的值被转置。我做错了什么?
1条答案
按热度按时间exdqitrt1#
没有一种方法可以正确地对文本进行排序:即,不同的语言将具有不同的规则。所以你必须明确地告诉你想要的排序顺序: