【发布时间】:2021-08-26 09:17:54
【问题描述】:
我正在运行此查询,但出现错误
select *
from dog
order by case
when exists(
select 1 from dogfood where dog.dogid = dogfood.dogid)
then '1'
else '0' end;
所以 2 个表,dog 和 dogfood,它们都有一个 dogid 列。我收到此错误:
[42703][-206] "DOG.DOGID" 在上下文中无效 它被使用.. SQLCODE=-206, SQLSTATE=42703, DRIVER=4.26.14 [56098][-727] 隐式系统操作类型期间发生错误 “2”。为错误返回的信息包括 SQLCODE "-206", > SQLSTATE "42703" 和消息标记 "DOG.DOGID".. > SQLCODE=-727, SQLSTATE=56098, DRIVER=4.26.14
如果它在dogfood 中有一行,我只想订购它。一个解决方案是在 select 子句中查询结果并在 order by 子句中引用它,但我希望它在我的应用程序的 order by 子句中。我很好奇为什么这个查询不起作用,我仔细检查了语法错误,但我找不到任何错误。我错过了一些明显的东西吗?我希望我可以按照我在 select/from 子句中查询的顺序引用一个表。
【问题讨论】: