在Oracle SQL查询中正确使用ROWNUM

阿米特·帕塔克(Amit Pathak)

我想找到城市城市长度(即单词CITY中的字符数),其中城市长度在表中最大。如果我们有多个值,则必须根据城市的字母顺序仅取第一个值。

我观察到一个奇怪的事情:

SELECT CITY, LENGTH(CITY) FROM STATION ORDER BY LENGTH(CITY) DESC, CITY;

在给我第一行的情况下为我提供了具有所需输出的正确表格Length(City) = 21但是,当我尝试使用

SELECT CITY, LENGTH(CITY) FROM STATION WHERE ROWNUM = 1 ORDER BY LENGTH(CITY) DESC, CITY;

在Oracle中的查询它给了我另外一行Length(City) = 12

请帮助我了解问题所在!同样,仅供参考,城市的最大长度只有一个值。

塞巴斯蒂安·布罗施(Sebastian Brosch)

WHERE您的查询的WHERE子句之前执行ORDER BY,因此ROWNUM = 1不是预期的行。您可以FETCH FIRST ROW ONLY改用:

SELECT CITY, LENGTH(CITY) 
FROM STATION 
ORDER BY LENGTH(CITY) DESC, CITY 
FETCH FIRST ROW ONLY;

...或者您将该语句放在子选择中,WHEREROWNUM在此上使用

SELECT * 
FROM (
  SELECT CITY, LENGTH(CITY) 
  FROM STATION 
  ORDER BY LENGTH(CITY) DESC, CITY
)x WHERE ROWNUM = 1;

dbfiddle.uk上的演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在查询SQL oracle中正确编写别名

来自分类Dev

Oracle sql rownum之间如何缩小查询

来自分类Dev

在Oracle中正确使用DataReader?

来自分类Dev

在Oracle 11的子查询中使用rownum

来自分类Dev

无法正确使用子查询(Oracle SQL)

来自分类Dev

oracle sql wih rownum <=

来自分类Dev

oracle sql wih rownum <=

来自分类Dev

SQL查询以随着文本在Oracle中的更改而更改rownum

来自分类Dev

ORACLE 12C - 使用 ROWNUM 的 SELECT 查询

来自分类Dev

如何使用单个SQL查询杀死Oracle中正在运行的用户会话?

来自分类Dev

如何在此代码中正确使用oracle EXECUTE IMMEDIATE

来自分类Dev

在 Oracle 中正确使用 sum 和 case 作为循环

来自分类Dev

使用group by的oracle sql查询

来自分类Dev

正确的Oracle查询

来自分类Dev

从特定数字添加 rownum - Oracle SQL

来自分类Dev

SQL 查询 (Oracle SQL)

来自分类Dev

ORACLE ROWNUM功能(使用分页页面)

来自分类Dev

使用ROWNUM的Oracle数据库问题

来自分类Dev

使用 rownum 和 order by 更新 Oracle 表

来自分类Dev

检查更新是否在oracle中正确发生

来自分类Dev

Oracle SQL独特查询

来自分类Dev

ORACLE SQL Developer(查询)

来自分类Dev

Oracle SQL LIKE查询

来自分类Dev

复杂的Oracle SQL查询

来自分类Dev

SQL Oracle查询

来自分类Dev

Oracle SQL查询输入

来自分类Dev

Oracle SQL子查询

来自分类Dev

Oracle SQL LIKE查询

来自分类Dev

Oracle SQL编程查询