我有以下疑问:
SELECT
title,
(stock_one + stock_two) AS global_stock
FROM
product
ORDER BY
global_stock = 0,
title;
字符串
在PostgreSQL 8.1.23中运行它,我得到这个错误:
查询失败:错误:global_stock列不存在
任何人都可以帮助我把它的工作?我需要的可用项目第一,他们之后的unnavailable项目。非常感谢!
我有以下疑问:
SELECT
title,
(stock_one + stock_two) AS global_stock
FROM
product
ORDER BY
global_stock = 0,
title;
字符串
在PostgreSQL 8.1.23中运行它,我得到这个错误:
查询失败:错误:global_stock列不存在
任何人都可以帮助我把它的工作?我需要的可用项目第一,他们之后的unnavailable项目。非常感谢!
3条答案
按热度按时间rsaldnfx1#
你可以这样
ORDER BY
:字符串
或将其 Package 在另一个SELECT中:
型
kqqjbcuj2#
一个解决方案是使用位置:
字符串
但是,别名应该可以工作,但不一定是表达式。“global_stock = 0”是什么意思?您的意思是:
型
q1qsirdb3#
如果有人在谷歌上搜索你是否可以只
ORDER BY my_alias
时发现这个:是的,你可以。这花了我几个小时。正如postgres文档所述:
序数指的是输出列的顺序(从左到右)位置。此功能可以根据没有唯一名称的列定义排序。这不是绝对必要的,因为始终可以使用
AS
子句为输出列分配名称。所以,要么这个问题已经被修复了,要么这个问题是关于
ORDER BY my_alias = 0, other_column
语法的,我实际上并不需要。