我有一个包含'0 03-03-14','1 04-03-14'等数据的varchar列。 我需要选择最大的一个,在这种情况下'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
有没有人有想法?
由于
答案 0 :(得分:1)
我假设你想要像max(版本,日期版本)这样的东西,试试这个:
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
答案 1 :(得分:0)
你是说这个吗?
select max(revision)
from table
where name = 'aname' and t_name = 'tname';
将修订号和日期放在一列似乎很奇怪。这真的是你的数据格式吗?如果没有,请使用实际数据格式修改您的问题。
答案 2 :(得分:0)
关于你的答案,我认为最好的解决方案是将这两部分分开:)