sql - ORDER BY 输出列小写

标签 sql postgresql sql-order-by postgresql-9.1

我能够毫无问题地运行这个 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/

相关文章:

c# - mySQL 从一个表中选择,从另一个表中加入,然后从新表中选择

sql - 使用 postgreSQL 的 ORDER BY COUNT 优化(索引?)

sql - SSIS : Execute SQL Server Agent Job Task run Asychronously or Synchronously

mysql - 当两行的列值相等时,根据第二列选择行

database - 在 postgreSQL 上插入之前获取函数触发器中新记录的 ID

sql - 在 Golang 中动态创建 PostgreSQL 表

SQL:基于两列交错值的 ORDER BY

sql-order-by - Django 在 .annotate() 中使用 order_by 并获取相关字段

sql - 按组中的最大值排序

sql - 两个Hive分区可以共享一组文件吗?