Oracle FETCH FIRST 1 ROW with UNION ALL 语句

2021-09-14 00:00:00 sql union oracle

我正在尝试使用 FETCH FIRST 1 ROW 在 SQL 中创建一个 UNION ALL 语句,但是当我这样做时,它给了我一个错误 MISSING KEYWORD

I'm trying to create a UNION ALL statement in SQL using the FETCH FIRST 1 ROW however when I do that it gives me an error MISSING KEYWORD

这是我的 SQL 的样子:

Here's what my SQL looks like:

Select * From tabl1 where Date = '04-MAR-2020' FETCH FIRST 1 ROW

UNION ALL

Select * From tabl1 where Date = '05-MAR-2020' FETCH FIRST 1 ROW

是这样可行的.我希望将其保留为单个语句,而不是添加 SUBQUERY 或任何此类性质的内容.

is something like this doable. I would like to keep this as a single statement rather than adding a SUBQUERY or anything of that nature.

推荐答案

只需将每个部分放在括号中即可.无论如何都可以在 12.2 中使用:

Just put the each part in parentheses. Works in 12.2, anyway:

( Select * From tabl1 where Date = '04-MAR-2020' FETCH FIRST 1 ROW )
UNION ALL
( Select * From tabl1 where Date = '05-MAR-2020' FETCH FIRST 1 ROW )

我的实际测试查询,对于任何感兴趣的人是这样的:

My actual test query, for anyone interested was this:

(select   object_name 
 from     user_objects 
 where    object_type = 'TABLE' 
 order by object_name 
 fetch first 1 row only)
UNION ALL
(select   object_name 
 from     user_objects 
 where    object_type = 'VIEW' 
 order by object_name 
 fetch first 1 row only);

相关文章