为什么内部联接不能在postgresql中使用case子句
我有这个SQL查询,但它不起作用,我很困惑为什么它不起作用。有没有人有这样的例子或解决方案 SQL: 错误: “case”处或附近出现语法错误 e.id=a.id 如果没有一些示例数据,或者没有对您试图实现的目标的任何描述,那么您可能没有连接谓词,因为您确实打算使用为什么内部联接不能在postgresql中使用case子句,sql,postgresql,Sql,Postgresql,我有这个SQL查询,但它不起作用,我很困惑为什么它不起作用。有没有人有这样的例子或解决方案 SQL: 错误: “case”处或附近出现语法错误 e.id=a.id 如果没有一些示例数据,或者没有对您试图实现的目标的任何描述,那么您可能没有连接谓词,因为您确实打算使用联合 SELECT e.state, case when e.state = 'a' then 'cation' else 'pasive' end FROM ( SELECT * FROM miss UNIO
联合
SELECT
e.state,
case when e.state = 'a' then 'cation' else 'pasive' end
FROM
(
SELECT * FROM miss
UNION ALL
SELECT * FROM mr
)
e
如果没有一些示例数据,或者没有对您试图实现的目标的任何描述,那么您可能没有连接谓词,因为您确实打算使用联合
SELECT
e.state,
case when e.state = 'a' then 'cation' else 'pasive' end
FROM
(
SELECT * FROM miss
UNION ALL
SELECT * FROM mr
)
e
你怎么知道它不起作用?它是否会导致错误消息?或者它返回的结果与您预期的不同吗?您没有将列拆分为
,
。因此,您只需在case表达式之前包含,
,即可工作。这是错误:错误:语法错误,如@YogeshSharma所建议,您缺少,介于e.state
和case
之间。您缺少一个连接条件。您如何知道它不起作用?它是否会导致错误消息?或者它返回的结果与您预期的不同吗?您没有将列拆分为,
。因此,您只需在case表达式之前包含,
,即可工作。这是错误:错误:语法错误,如@YogeshSharma所建议,您缺少,介于e.state
和case
之间。您缺少一个连接条件。谢谢,这很有帮助。谢谢,这很有帮助。
SELECT
e.state, -- you were missing a , here
case when e.state = 'a' then 'cation' else 'pasive' end
from
miss as e
INNER JOIN
mr as a
-- You're missing the join predicate here : ON e.something = a.something
SELECT
e.state,
case when e.state = 'a' then 'cation' else 'pasive' end
FROM
(
SELECT * FROM miss
UNION ALL
SELECT * FROM mr
)
e