【发布时间】:2018-12-15 03:35:09
【问题描述】:
我做了这个我需要的查询,但我只需要结果中的一列。所以它是这样的:
select SWDATECREATED from
(select * from MBR_INST_PRODUCTS
inner join MBR_SUBSCRIBERS
on MBR_INST_PRODUCTS.SWOBJECTID = MBR_SUBSCRIBERS.SWSUBRID
where MBR_SUBSCRIBERS.SWSUBRID = 54501928
and SWINSTPRODID = 1433193947);
如果我在括号内运行选择,那就太好了。 但是,如果我尝试从该结果集中仅选择特定列,则会收到错误 ORA-00904。 我已经检查了错误,但所有列都正确写入。 如何从选择中仅选择 SWDATECREATED?
这是我的错误:
ORA-00904: "SWDATECREATED": 无效标识符 00904. 00000 - "%s: 无效标识符"
*原因:
*行动:
行错误:5 列:8
感谢您的宝贵时间。
【问题讨论】:
-
。 .您需要清楚哪些查询有效,哪些无效。我很困惑。
-
如果你只运行子查询,而不是使用
*,你只选择SWDATECREATED,会发生什么? -
您说“所有列都写得正确”,但我只看到一列“已写”,其余列的选择让我们的疑难解答盲目,因为我们不知道
*中选择了什么.在你的 SQL 中更加明确,也许问题和它的解决方案会自己出现。 -
方括号中的内容:select * from MBR_INST_PRODUCTS 内部连接 MBR_SUBSCRIBERS on MBR_INST_PRODUCTS.SWOBJECTID = MBR_SUBSCRIBERS.SWSUBRID 其中 MBR_SUBSCRIBERS.SWSUBRID = 54501928 和 SWINSTPRODID = 1433193947 给我一个结果行,但我只想要从该行获取 SWDATECREATED 列
-
@VictorG - 但结果集中有两列具有该名称,对吧?
标签: sql oracle subquery ora-00904