繁体   English   中英

SQL选择varchar的最大值

[英]SQL select max value of varchar

我有一个varchar列,其中包含“ 0 03-03-14”,“ 1 04-03-14”等数据。 我需要选择一个最大值,在这种情况下为“ 1 04-03-14”。

我的问题是我可以拥有“ 1”(最大值),但是如果我还想要日期怎么办?

现在,我有这个:

SELECT MAX(TO_NUMBER(SUBSTR(revision, 1, INSTR(revision, ' ')-1)))
    FROM table
    WHERE name = 'aname'
        AND t_name = 'tname'
    GROUP BY revision

有人有主意吗?

谢谢

我假设您想要类似max(version,date version)的内容,请尝试以下操作:

Select * from (
  Select * from (
    SELECT
        TO_NUMBER(SUBSTR(revision, 1, INSTR(revision, ' ')-1)) as rev
      , TO_DATE(SUBSTR(revision, 1, INSTR(revision, ' ')+1),'DD-MM-YY') as revDate
    FROM table
    WHERE name = 'aname'
    AND t_name = 'tname'
  ) extracted
  order by extracted.revDate, extracted.rev desc
) where rownum = 1

你是这个意思吗

select max(revision)
from table
where name = 'aname' and t_name = 'tname';

将修订号和日期放在一栏中似乎很奇怪。 那真的是您的数据格式吗? 如果不是,请使用实际数据格式修改您的问题。

关于您的答案,我认为最好的解决方案是将这两个部分分开:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM