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 |
|
|
|
[Modify] [Delete] | [Reply] [List] |