4,511,141 th visitor since 2017.2.1 ( Today : 1708 )
Programming
No. 485
Name. swindler
Subject. 숫자로만 구성된 컬럼의 max값 구하기
Main Cate. Oracle
Sub Cate.
Date. 2008-10-20 15:50
Hit. 3774 (210.182.190.136)
File.
예제 1)

varchar2 타입의 컬럼에서 숫자로만 구성된 것들 중 max값을 구해보자.

테이블 test가 아래와 같이 주어졌다면,

WITH TEST AS
(SELECT 'asdfasd3043' str
FROM DUAL
UNION ALL
SELECT '12323'
FROM DUAL
UNION ALL
SELECT '944'
FROM DUAL)


실행해야 하는 쿼리는 다음과 같다.


SELECT MAX (TO_NUMBER (str))
FROM TEST
WHERE TRANSLATE (str, 'X0123456789', 'X') IS NULL



예제 2)

이번에는 숫자로만 구성된 경우에는 컬럼값을 그대로 두고, 다른 문자가 섞여있는 컬럼만을 0값으로 업데이트 해주자.

UPDATE TEST
SET str = 0
WHERE TRANSLATE (str, 'X0123456789', 'X') IS NOT NULL



예제 3)

How can I check a string if it is compliant to the following demands : if for e.g. phone numbers can consist only of numbers and the characters / and +


SELECT *
FROM your_table
WHERE TRANSLATE (candidate_phone_number, '@0123456789/+', '@') IS NULL








문자열에서 문자만, 혹은 숫자만 얻어오기


-- 문자만
SELECT TRANSLATE (str, 'X0123456789', 'X') "문자만"
FROM (SELECT '3242gakasdf한' str
FROM DUAL)


-- 숫자만
SELECT REPLACE (TRANSLATE (str, TRANSLATE (str, 'X0123456789', 'X'), 'X'), 'X') "숫자만"
FROM (SELECT '3ㅋ클242gakasdf한' str
FROM DUAL)



문자열에서 숫자만 얻어오기를 더 간결하게...


SELECT TRANSLATE (STR, '0123456789' || STR, '0123456789')
FROM (SELECT 'gakas38dueh3746d마옴ㄹ7373dasdaafd33dasfa212f한' STR
FROM DUAL)



[바로가기 링크] : http://coolx.net/cboard/develop/485



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog