Oacle 의 decode 사용 설명

2082 단어 Oacledecode
의미 해석:
decode(조건,값 1,반환 값 1,값 2,반환 값 2,...값 n,반환 값 n,부족 값)
이 함수 의 의 미 는 다음 과 같다.IF 조건=값 1 THEN RETURN(번역 값 1)ELSIF 조건=값 2 THEN RETURN(번역 값 2)...ELSIF 조건=값 n THEN RETURN(번역 값 n)ELSE RETURN(결 성 값)END IF
decode(필드 나 필드 의 연산,값 1,값 2,값 3)
       이 함수 가 실 행 된 결 과 는 필드 나 필드 의 연산 값 이 값 1 과 같 을 때 이 함수 가 값 2 를 되 돌려 줍 니 다.그렇지 않 으 면 값 3 을 되 돌려 줍 니 다.물론 값 1,값 2,값 3 도 표현 식 일 수 있 습 니 다.이 함 수 는 일부 sql 문 구 를 간단 하 게 만 들 었 습 니 다.
사용 방법:
1.크기 비교
select decode(sign(변수 1-변수 2),-1,변수 1,변수 2)from dual;--작은 값 sign()함 수 를 취하 면 특정한 값 이 0,양수 또는 음수 에 따라 각각 0,1,-1 을 되 돌려 줍 니 다.예 를 들 어 변수 1=10,변수 2=20 은 sign(변수 1-변수 2)에 따라-1 을 되 돌려 주 고 decode 디 코딩 결 과 는'변수 1'로 작은 값 을 취 하 는 목적 을 달성 합 니 다.
2.이 함 수 는 SQL 구문 에 사 용 됩 니 다.기능 소 개 는 다음 과 같 습 니 다.
Decode 함 수 는 일련의 포 함 된 IF-THEN-ELSE 문장 과 비슷 합 니 다.base_exp 와 compare 1,compare 2 등 을 순서대로 비교 합 니 다.하면,만약,만약...exp 는 i 번 째 compare 항목 과 일치 하면 i 번 째 대응 하 는 value 를 되 돌려 줍 니 다.하면,만약,만약...exp 는 어떠한 compare 값 과 도 일치 하지 않 으 면 default 로 돌아 갑 니 다.모든 compare 값 은 순서대로 값 을 구 합 니 다.일치 하 는 값 을 발견 하면 나머지 compare 값(더 있 으 면)은 더 이상 값 을 구하 지 않 습 니 다.NULL 을 위 한 baseexp 는 NULL compare 값 과 등가 로 여 겨 집 니 다.필요 하 다 면,모든 compare 값 은 첫 번 째 compare 값 과 같은 데이터 형식 으로 변환 되 며,이 데이터 형식 도 값 을 되 돌려 주 는 형식 입 니 다.
Decode 함 수 는 실제 개발 에서 매우 유용 합 니 다.
Lpad 함 수 를 결합 하여 메 인 키 의 값 을 자동 으로 1 을 추가 하고 앞에서 0 select LPAD(decode(count(기록 번호),0,1,max(tonumber(기록 번호)+1),14,'0')tetdmis 의 기록 번호
eg:
select decode(dir,1,0,1) from a1_interval
dir 의 값 은 1 에서 0 으로,0 이면 1 로 변 합 니 다.
예 를 들 어 나 는 어떤 반 의 남학생 과 여학생 의 수량 이 각각 얼마 인지 조회 해 야 한다.
보통 우 리 는 이렇게 쓴다.
표 의 성별=남자 에서 count(*)를 선택 하 십시오.select count(*)표 에서 성별=여자;
같이 보 여 주 려 면 유 니 온 도 있어 야 돼 요.너무 귀찮아 요.
decode 로 할 까요?한 마디 만 요.
select decode(성별,남자,1,0),decode(성별,여자,1,0)
3,orderby 문자 열 에 대한 특정한 정렬
Order by 에서 Decode 도 사용 할 수 있 습 니 다.
예:표 tablesubject,subjectname 열.요구:어,수,밖의 순서에 따라 정렬 해 야 합 니 다.이 럴 때 는 Decode 를 쉽게 사용 하여 요 구 를 완성 할 수 있 습 니 다.
select * from table_subject order by decode(subject_name,'국어',1,'수학',2,'외국어',3)

좋은 웹페이지 즐겨찾기