【发布时间】:2015-09-02 10:15:25
【问题描述】:
我正在尝试运行此查询,但收到缺少表达式错误。
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(order by 'rownum') row_num1,
*
FROM A
WHERE refresh_date = (
SELECT max(refresh_date)
FROM A
WHERE upper(flaw_table_name) = upper('B')
)
)
WHERE row_num1 >= 1
AND row_num1 <=20
你能帮帮我吗,我哪里出错了。
【问题讨论】:
-
ROW_NUMBER 和 OVER() 之间似乎缺少逗号选择 ROW_NUMBER() OVER(order by 'rownum'
-
我尝试在 ROW_NUMBER 和 OVER() 之间添加逗号,但收到错误“缺少此函数的窗口规范”
-
SELECT * from (select ROW_NUMBER(), OVER(order by 'rownum') row_num1,* from A where refresh_date = (Select max(refresh_date) from A where upper(flaw_table_name) = upper(' B') )) where row_num1>= 1 and row_num1
-
order by 'rownum'没有意义。您正在对 constant 值进行排序。与order by 42相同。如果您不关心生成的数字,可以使用row_number() over ()
标签: sql oracle window-functions