gpt4 book ai didi

sql - Oracle SQL MAX 函数在 VARCHAR 到 NUMBER 转换时不返回 max

转载 作者:行者123 更新时间:2023-12-02 05:30:07 26 4
gpt4 key购买 nike

我正在尝试从一组行中获取最高的系统编号。系统编号以 SYS 开头,因此 select SYSTEM_ID from TABLE 会产生,{SYS901,SYS87,SYS3024.....}/p>

这是我尝试使用的查询:

从表中选择 MAX(REPLACE(SYSTEM_ID,'SYS',''))

可能的结果是

{901,87,3024,20,1}

它返回 901 值,而我希望看到 3024 值。我认为问题在于该字段是 VARCHAR 而不是 NUMBER。如何解决这个问题,我不知道。

最佳答案

select MAX(TO_NUMBER(REPLACE(SYSTEM_ID,'SYS',''))) from TABLE;

使用 TO_NUMBER 将 VARCHAR2 转换为 NUMBER,否则 Oracle 会使用 ASCII 代码 ('9' > '3') 比较字符串

关于sql - Oracle SQL MAX 函数在 VARCHAR 到 NUMBER 转换时不返回 max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26739381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com