我能够毫无问题地运行这个 Postgres 查询:
select
(select product_types.name from product_types
where product_types.id = products.product_type_id) AS product_type_name
from products
order by product_type_name
但是当我尝试按小写字母排序时它不起作用:
select
(select product_types.name from product_types
where product_types.id = products.product_type_id) AS product_type_name
from products
order by lower(product_type_name)
我收到这个错误:
ERROR: column "product_type_name" does not exist
LINE 4: order by lower(product_type_name)
^
********** Error **********
ERROR: column "product_type_name" does not exist
SQL state: 42703
Character: 156
有人可以告诉我一些关于这个的信息吗?
最佳答案
乍一看,您的第一个查询可以这样重写:
select pt.name product_type_name from product_types pt
join products p on pt.id = p.product_type_id
order by pt.name
然后,使用 lower
函数进行排序意味着只需将顺序更改为:
order by lower(pt.name)
关于sql - ORDER BY 输出列小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277632/