【发布时间】:2015-11-03 23:06:47
【问题描述】:
我正在尝试在 SQL 中执行条件 ORDER BY,但出现错误:column "ended" does not exist 指向查询的“结束”部分的情况。
这是我的查询:
SELECT (EXTRACT(EPOCH FROM SUBMISSION_DEADLINE)
-EXTRACT(EPOCH FROM now())) AS "datediff"
, (EXTRACT(EPOCH FROM SUBMISSION_DEADLINE)>EXTRACT(EPOCH FROM now())) AS "ended", *
FROM imdown_api_v1_contest
ORDER BY "ended" DESC, case when "ended" = true then "datediff" else "-datediff" END ASC;
我需要先抓住尚未结束的比赛,然后按最先结束的比赛排序。然后我需要所有已经结束的,并按最近结束的排序。
【问题讨论】:
-
一种选择是将您的查询(不带
order by)移动到子查询中,然后将order by添加回来。那应该可以识别ended列...
标签: sql postgresql sql-order-by