在Postgresql中的where子句中使用别名列

在Postgresql中的where子句中使用别名列,第1张

概述我有一个这样的查询: SELECT jobs.*, (CASE WHEN lead_informations.state IS NOT NULL THEN lead_informations.state ELSE 'NEW' END) as lead_stateFROM "jobs"LEFT JOIN lead_informations ON lead_informations.jo 我有一个这样的查询:
SELECT jobs.*,(CASE WHEN lead_informations.state IS NOT NulL THEN lead_informations.state ELSE 'NEW' END) as lead_stateFROM "jobs"left JOIN lead_informations  ON lead_informations.job_ID = jobs.ID  AND lead_informations.mechanic_ID = 3WHERE (lead_state = 'NEW')

其中出现以下错误:

PGError: ERROR:  column "lead_state" does not existliNE 1: ...s.ID AND lead_informations.mechanic_ID = 3 WHERE (lead_state...

在MysqL这是有效的,但显然不是在Postgresql。从我可以收集,原因是查询的SELECT部分​​的评估晚于WHERE部分。有这个问题的常见解决方法吗?

MysqL的支持是,因为你体验到,非标准。正确的方法是重新打印在SELECT子句中使用的同一个表达式:
SELECT jobs.*,CASE          WHEN lead_informations.state IS NOT NulL THEN lead_informations.state          ELSE 'NEW'        END as lead_state  FROM "jobs"left JOIN lead_informations ON lead_informations.job_ID = jobs.ID                           AND lead_informations.mechanic_ID = 3    WHERE lead_informations.state IS NulL
总结

以上是内存溢出为你收集整理的在Postgresql中的where子句中使用别名列全部内容,希望文章能够帮你解决在Postgresql中的where子句中使用别名列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/1172061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存