Sql 为什么我会得到专栏;完";不存在吗?
我试图在SQL中按进行有条件的排序,但我得到一个错误:Sql 为什么我会得到专栏;完";不存在吗?,sql,postgresql,sql-order-by,Sql,Postgresql,Sql Order By,我试图在SQL中按进行有条件的排序,但我得到一个错误:列“end”不存在指向查询的“case when”部分 我的问题是: SELECT (EXTRACT(EPOCH FROM SUBMISSION_DEADLINE) -EXTRACT(EPOCH FROM now())) AS "datediff" , (EXTRACT(EPOCH FROM SUBMISSION_DEADLINE)>EXTRACT(EPOCH FROM now())) AS "ended", *
列“end”不存在
指向查询的“case when”部分
我的问题是:
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时未定义,sql按下一个顺序执行查询:
order by
子句中,或者使用子查询,如:
select * from (
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
) tmpq
ORDER BY "ended" DESC, case when "ended" = true then "datediff" else "-datediff" END ASC
执行order by时未定义列
END
,sql按下一个顺序执行查询:
order by
子句中,或者使用子查询,如:
select * from (
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
) tmpq
ORDER BY "ended" DESC, case when "ended" = true then "datediff" else "-datediff" END ASC
执行order by时未定义列
END
,sql按下一个顺序执行查询:
order by
子句中,或者使用子查询,如:
select * from (
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
) tmpq
ORDER BY "ended" DESC, case when "ended" = true then "datediff" else "-datediff" END ASC
执行order by时未定义列
END
,sql按下一个顺序执行查询:
order by
子句中,或者使用子查询,如:
select * from (
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
) tmpq
ORDER BY "ended" DESC, case when "ended" = true then "datediff" else "-datediff" END ASC
您的查询在多个位置被破坏或效率低下,而不仅仅是对列别名的非法引用。这可能会达到您的目的:
SELECT EXTRACT(EPOCH FROM now() - submission_deadline) AS datediff
, now() > submission_deadline AS ended -- I inverted your expression!
, *
FROM imdown_api_v1_contest
ORDER BY 2 -- positional reference to output column
, @(EXTRACT(EPOCH FROM now() - submission_deadline))
通常,“结束”的竞赛在过去有一个提交截止日期
,因此now()>提交截止日期是结束的
,而不是相反
要修复主要语法错误,我使用位置引用而不是列别名。详细说明:
为了达到您想要的顺序,我使用了。您的查询在多个地方被破坏或效率低下,而不仅仅是对列别名的非法引用。这可能会达到您的目的:
SELECT EXTRACT(EPOCH FROM now() - submission_deadline) AS datediff
, now() > submission_deadline AS ended -- I inverted your expression!
, *
FROM imdown_api_v1_contest
ORDER BY 2 -- positional reference to output column
, @(EXTRACT(EPOCH FROM now() - submission_deadline))
通常,“结束”的竞赛在过去有一个提交截止日期
,因此now()>提交截止日期是结束的
,而不是相反
要修复主要语法错误,我使用位置引用而不是列别名。详细说明:
为了达到您想要的顺序,我使用了。您的查询在多个地方被破坏或效率低下,而不仅仅是对列别名的非法引用。这可能会达到您的目的:
SELECT EXTRACT(EPOCH FROM now() - submission_deadline) AS datediff
, now() > submission_deadline AS ended -- I inverted your expression!
, *
FROM imdown_api_v1_contest
ORDER BY 2 -- positional reference to output column
, @(EXTRACT(EPOCH FROM now() - submission_deadline))
通常,“结束”的竞赛在过去有一个提交截止日期
,因此now()>提交截止日期是结束的
,而不是相反
要修复主要语法错误,我使用位置引用而不是列别名。详细说明:
为了达到您想要的顺序,我使用了。您的查询在多个地方被破坏或效率低下,而不仅仅是对列别名的非法引用。这可能会达到您的目的:
SELECT EXTRACT(EPOCH FROM now() - submission_deadline) AS datediff
, now() > submission_deadline AS ended -- I inverted your expression!
, *
FROM imdown_api_v1_contest
ORDER BY 2 -- positional reference to output column
, @(EXTRACT(EPOCH FROM now() - submission_deadline))
通常,“结束”的竞赛在过去有一个提交截止日期
,因此now()>提交截止日期是结束的
,而不是相反
要修复主要语法错误,我使用位置引用而不是列别名。详细说明:
要实现所需的顺序,我使用。一个选项是将查询(不带
orderby
)移动到子查询中,然后将orderby
添加回。这应该可以识别结束
列…一个选项是将您的查询(不带orderby
)移动到子查询中,然后将orderby
添加回去。这应该可以识别结束
列…一个选项是将您的查询(不带orderby
)移动到子查询中,然后将orderby
添加回去。这应该可以识别结束
列…一个选项是将您的查询(不带orderby
)移动到子查询中,然后将orderby
添加回去。这应该可以识别结束
列……有没有办法让这些限制和抵消条款起作用?@Tyler:我看这里的限制
和抵消
没有问题。。。也许开始一个新问题来清楚地陈述你的情况?不管是哪种方式,都要考虑对手提问题的更新查询。有没有办法用限制和偏移子句来实现这些工作?@泰勒:我没有看到<代码>限制< /代码>和<代码>偏移< /代码>的问题…也许开始一个新问题来清楚地陈述你的情况?不管是哪种方式,都要考虑对手提问题的更新查询。有没有办法用限制和偏移子句来实现这些工作?@泰勒:我没有看到<代码>限制< /代码>和<代码>偏移< /代码>的问题…也许开始一个新问题来清楚地陈述你的情况?不管是哪种方式,都要考虑对手提问题的更新查询。有没有办法用限制和偏移子句来实现这些工作?@泰勒:我没有看到<代码>限制< /代码>和<代码>偏移< /代码>的问题…也许开始一个新问题来清楚地陈述你的情况?无论哪种方式,考虑对当前问题的更新查询。