我试图从一个表中使用cte和行号函数获取特定数量的记录。每当我运行查询时,我都会得到一个关于查询中“FROM”子句位置的错误。请提出这个错误背后的原因,因为我是新的SQL。
错误:
ORA-00923:在预期的00923位置未找到FROM关键字。00000 -“FROM关键字未在预期位置找到”* 原因:
- 操作:行出错:3柱:10**
验证码:
WITH cte2 AS (
SELECT
*, row_number() over (order by a.v_prt_nbr_spr) as rw_number
FROM
cf_active_pn_master a
INNER JOIN cf_conn_support b ON a.obj_id = b.obj_id
WHERE
a.v_prt_nbr_spr LIKE 'HQCD%'
)
SELECT *
FROM cte2
where rw_number between 5000 and 10000;
2条答案
按热度按时间zz2j4svz1#
要将
*
与添加到SELECT
列表中的任何其他内容一起使用,您必须对*
进行别名:如果你想要
a
和b
列,你必须至少列出其中一个,因为a.*,b.*
将返回重复的obj_id
列,而这在查询块中是不允许的,因为它是另一个块的视图。所以:6yt4nkrj2#
这是针对emp示例表的类似查询:
请注意,错误与您的错误相同。如果您从多个表中选择
*
,或者您选择了所有内容,然后选择了另一列,则需要对*
进行别名。