SQL命令使用以获取和联合的结局未正确结束

发布于 2025-02-12 12:48:25 字数 280 浏览 0 评论 0原文

为什么此查询返回的SQL命令未正确结束'错误?

select column1, length(column1) from test10 order by length(column1), column1 asc 
fetch first 1 rows only
union
select column1, length(column1) from test10 order by length(column1) desc, column1 asc fetch first 1 rows only;

Why this query return 'SQL command not properly ended' error?

select column1, length(column1) from test10 order by length(column1), column1 asc 
fetch first 1 rows only
union
select column1, length(column1) from test10 order by length(column1) desc, column1 asc fetch first 1 rows only;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狂之美人 2025-02-19 12:48:25

该数据库有问题来识别属于何方的问题。

因此,您可以通过括号来帮助解析器

 创建表test10(Column1 Varchar2(10))
 
 (选择列1,长度(列1) 
来自Test10 
按长度(列1),第1列ASC订购 
仅获取第一行)
联盟
(选择列1,长度(列1) 
来自Test10 
按长度(第1列)desc订购,第1栏ASC 
仅获取第一行);
 
 column1 |长度(列1)
:------- | -----------------:

db<> fiddle

f121b9505ee4880b3838388888888888888888880e496f72c3旧引擎

如此这个问题的结果是

SELECT CITY, LENGTH(CITY)
FROM
(SELECT CITY, LENGTH(CITY) 
, Row_Number() OVER (ORDER BY  LENGTH(CITY) ASC,CITY ASC) rn
FROM STATION)
WHERE rn = 1
UNION
SELECT CITY, LENGTH(CITY)
FROM
(SELECT CITY, LENGTH(CITY) 
, Row_Number() OVER (ORDER BY  LENGTH(CITY) DESC,CITY DESC) rn
FROM STATION)
WHERE rn = 1
;

The database has problems to identify where what belongs.

so you can help the parser with parenthesis

CREATE tABLE test10 (column1 varchar2(10))
(select column1, length(column1) 
from test10 
order by length(column1), column1 asc 
fetch first 1 rows only)
union
(select column1, length(column1) 
from test10 
order by length(column1) desc, column1 asc 
fetch first 1 rows only);
COLUMN1 | LENGTH(COLUMN1)
:------ | --------------:

db<>fiddle here

hackerrank has a really old engine

So the result to that problem is

SELECT CITY, LENGTH(CITY)
FROM
(SELECT CITY, LENGTH(CITY) 
, Row_Number() OVER (ORDER BY  LENGTH(CITY) ASC,CITY ASC) rn
FROM STATION)
WHERE rn = 1
UNION
SELECT CITY, LENGTH(CITY)
FROM
(SELECT CITY, LENGTH(CITY) 
, Row_Number() OVER (ORDER BY  LENGTH(CITY) DESC,CITY DESC) rn
FROM STATION)
WHERE rn = 1
;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文