MAX 값 하면 A가 나오거든요? 2가나오게 하고싶어요 문자를 젤 ㄴ작은값으로 하고싶은데 어떻게해야하나요?ㅠ
DATA1
DATA2
001-010
1
001-010
2
001-010
A
by 우리집아찌
[2016.07.25 17:15:09]
/* 두개중 편하신대로.. */
WITH T AS (
SELECT '001-010' DATA1 ,'1' DATA2 FROM DUAL UNION ALL
SELECT '001-010' ,'2' FROM DUAL UNION ALL
SELECT '001-010' ,'A' FROM DUAL
)
SELECT MAX(TO_NUMBER(DATA2)) FROM T
--WHERE REGEXP_LIKE(DATA2,'[1-9]')
WHERE DATA2 >= '1' AND DATA2 <= '9'
by 마늘장아찌
[2016.07.25 17:48:55]
WITH t1 AS
(SELECT '1' AS v1 FROM dual UNION ALL
SELECT '2' FROM dual UNION ALL
SELECT 'A' FROM dual)
SELECT t2.v1
FROM (SELECT v1
,row_number() OVER (ORDER BY decode(regexp_replace(v1, '[A-Za-z]+', null), '', 0
, 1)||ASCII(v1) DESC) rn
FROM t1) t2
WHERE rn = 1
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.