sql - Oracle-返回一组行中的最短字符串值

标签 sql oracle plsql

我正在尝试编写一个查询,该查询返回列中最短的字符串值。例如:如果ColumnA的值为ABCDE,ZXDR,ERC,则查询应返回“ERC”。我已经编写了以下查询,但是我想知道是否有更好的方法可以做到这一点?

查询应返回单个值。

select distinct ColumnA from
(
  select ColumnA, rank() over (order by length(ColumnA), ColumnA) len_rank 
    from TableA where ColumnB = 'XXX'
)
where len_rank <= 1

最佳答案

怎么样:

select ColumnA
from
(
  select ColumnA
  from tablea
  order by length(ColumnA) ASC
)
where rownum = 1

关于sql - Oracle-返回一组行中的最短字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676741/

相关文章:

sql - mysql GROUP_CONCAT 重复

sql - 从嵌套表中获取数据到游标中

oracle - 如何配置 Camunda 7.10(Wildfly 完整发行版)与 Oracle 数据库配合使用?

sql - 你如何总结和组合一个字符串

oracle - 从打包函数返回集合以在 select 中使用

oracle - ORA-04091 : table xx_xx is mutating, 触发器/函数可能看不到它

mysql - 列名前的 SQL 语句中的 At-Sign

mysql - 如何简化 UNION ALL 的结果

sql - 获取负数最大的行,如果没有负数则获取最小数的行

oracle - GRANT SELECT 在其他模式表上