Oracle 문자열 에 숫자,특수 기호 가 포 함 된 정렬 문 제 를 해결 합 니 다.
한 동 네 는 동네,건물,유닛 번호,방 번호 에 따라 정렬 해 야 하지만 주소 설명 에 따라 정렬 할 때 문자열 에 숫자 가 포함 되 어 있 기 때문에 다음 과 같은 결 과 를 얻 었 습 니 다.
1 번 건물 뒤 에는 2 번 건물 이 어야 하 는데 조회 결 과 는 10 번 건물 이 었 다.
해결 을 시도 하 다
정규 표현 식 으로 바 꾸 기
결과:
건물 번호 정렬 은 정상 이 었 지만 방 번호 정렬 이 혼 란 스 러 웠 다. 계속 방법 을 생각 하 다
최종 방법:
translate 함수 사용
결과 가 정상적으로 나 타 났 음 을 발견 할 수 있다.
다음은 translate 사용 방법 을 동봉 합 니 다.
1.문법:
TRANSLATE(string,from_str,to_str)
목적반환 장(모든 출현)fromstr 의 모든 문 자 를 to 로 대체 합 니 다.str 의 해당 문자 이후 string.TRANSLATE 는 REPLACE 가 제공 하 는 기능 의 초 집합 이다.하면,만약,만약...str 비 tostr 길이,그럼 fromstr 에 없 음 tostr 의 추가 문 자 는 string 에서 삭 제 됩 니 다.교체 문자 가 없 기 때 문 입 니 다.to_str 가 비어 있 으 면 안 됩 니 다.Oracle 은 빈 문자열 을 NULL 로 해석 하고 TRANSLATE 의 모든 인자 가 NULL 이면 결과 도 NULL 입 니 다.
3.사용 가능 한 위치
프로 세 스 구문 과 SQL 구문.
예시
Sql 코드
SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
TRANSLATE (
--------------
123456ghij
SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
TRANSL
----------
123456
문법:TR ANSLATE(expr,from,to)
expr:한 줄 의 문 자 를 대표 합 니 다.from 과 to 는 왼쪽 에서 오른쪽으로 일일이 대응 하 는 관계 입 니 다.대응 하지 못 하면 빈 값 으로 간주 합 니 다.예:
select translate('abcbbaadef','ba','#@') from dual (b # ,a @ )
select translate('abcbbaadef','bad','#@') from dual (b # ,a @ ,d , )
따라서 결 과 는@\#c\##@def 와@\#c\#\#@ef 순 으로 나 타 났 다.문법:
TRANSLATE(expr,from,to)
expr:한 줄 의 문 자 를 대표 합 니 다.from 과 to 는 왼쪽 에서 오른쪽으로 일일이 대응 하 는 관계 입 니 다.대응 하지 못 하면 빈 값 으로 간주 합 니 다.예:
select translate('abcbbaadef','ba','#@') from dual (b # ,a @ )
select translate('abcbbaadef','bad','#@') from dual (b # ,a @ ,d , )
따라서 결 과 는@\#c\##@def 와@\#c\#\#@ef 순 으로 나 타 났 다.예 는 다음 과 같다.
예제 1:숫자 를 9 로 바 꾸 고 다른 대문자 들 은 X 로 바 꾼 다음 되 돌려 줍 니 다.
SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License"FROM DUAL
예시 2:숫자 를 보존 하고 다른 대문자 자 모 를 제거 합 니 다.
SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') "Translate example"FROM DUAL
나 용 보충 예 는 다음 과 같다.예시 3:예시 증명 은 문자 에 따라 처리 하 는 것 이지 바이트 에 따라 처리 하 는 것 이 아니 라 tostring 의 문자 수 는 fromstring 이 많 으 면 더 많은 문자 수 는 쓸모 가 없 는 것 같 고 이상 을 일 으 키 지 않 습 니 다.
SELECT TRANSLATE(' , ', ' ', 'China') "Translate example"
FROM DUAL
예시 4:아래 의 예시 증명,만약 fromstring 의 문자 수 는 to 보다 크다string,그렇게 많은 문 자 는 삭 제 됩 니 다.즉,ina 세 문 자 는 char 매개 변수 에서 삭 제 됩 니 다.당연히 대소 문 자 를 구분 합 니 다.
SELECT TRANSLATE('I am Chinese, I love China', 'China', ' ') "Translate example"
FROM DUAL
예제 5:다음 예제 에 따 르 면 두 번 째 매개 변수 가 빈 문자열 이면 전체 null 로 돌아 갑 니 다.
SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'') "License"
FROM DUAL
예 6:은행 이 체 를 할 때 계좌 인 이 이름 의 마지막 글자 만 표시 하고 나머지 는 별표 로 대체 하 는 것 을 자주 볼 수 있 습 니 다.저 는 translate 로 비슷 한 물건 을 만 들 겠 습 니 다.
SELECT TRANSLATE(' ',
substr(' ',1,length(' ') - 1),
rpad('*',length(' '),'*')) "License"
FROM DUAL
총결산위 에서 말 한 것 은 오 라 클 문자열 에 숫자,특수 기호 가 포 함 된 정렬 문 제 를 해결 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.