Oracle Decode()함수 사용 기법 공유
DECODE(조건,값 1,번역 값 1,값 2,번역 값 2,...값 n,번역 값 n,결 성 값)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、Windows NT4.0+ORACLE 8.0.4
2.ORACLE 설치 경로:C:/ORANT
・사용 방법:
1.크기 비교
select decode(sign(변수 1-변수 2),-1,변수 1,변수 2)from dual;--작은 값 을 취하 다
sign()함 수 는 특정한 값 이 0,양수 인지 음수 인지 에 따라 각각 0,1,-1 을 되 돌려 줍 니 다.
예 를 들 면:
변수 1=10,변수 2=20
싸 인(변수 1-변수 2)이-1 을 되 돌려 주 고 decode 디 코딩 결 과 는'변수 1'로 작은 값 을 취 하 는 목적 을 달성 했다.
2.표,보기 구조 전환
현재 하나의 상품 판매 표 sale,표 구 조 는:
month char(6)--달
sell number(10,2)--월 매출 금액
현재 데 이 터 는:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
다음 구조 로 전환 하려 는 데이터:
year char(4)--연도
month 1 number(10,2)--1 월 판매 금액
month 2 number(10,2)--2 월 판매 금액
month 3 number(10,2)--3 월 판매 금액
month 4 number(10,2)--4 월 판매 금액
months 5 number(10,2)--5 월 판매 금액
months 6 number(10,2)--6 월 판매 금액
month 7 number(10,2)--7 월 판매 금액
months 8 number(10,2)--8 월 판매 금액
month 9 number(10,2)--9 월 판매 금액
month 10 number(10,2)--10 월 판매 금액
month 11 number(10,2)--11 월 판매 금액
month 12 number(10,2)--12 월 판매 금액
구조 전환 SQL 문 구 는 다음 과 같 습 니 다.
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
as
select
substrb(month,1,4),
sum(decode(substrb(month,5,2),'01',sell,0)),
sum(decode(substrb(month,5,2),'02',sell,0)),
sum(decode(substrb(month,5,2),'03',sell,0)),
sum(decode(substrb(month,5,2),'04',sell,0)),
======================================================
보충 1:
학생 성적표 student 이 있 습 니 다.지금 decode 함수 로 다음 과 같은 몇 가지 기능 을 실현 해 야 합 니 다.성적>85,우수 함 을 표시 합 니 다.>70 잘 보이 기;>60 합격;그렇지 않 으 면 불합격 이다.
student 의 번호 가 id 이 고 성적 이 score 라 고 가정 하면 select id,decode(score-85),1,'우수',0,'우수',-1,decode(sign(score-70),1,'양호',0,'양호',-1,decode(sign(score-60),1,'합격',0,'및 합격',-1,'불합격')from student;
======================================================
보충 2:Decode 함수 의 문법 구 조 는 다음 과 같 습 니 다:decode(expression,search1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)decode (expression, search_1, result_1, search_2, result_2, default)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode 함수 비교 표현 식 과 검색 어,일치 하면 결 과 를 되 돌려 줍 니 다.일치 하지 않 으 면 default 값 을 되 돌려 줍 니 다.default 값 이 정의 되 지 않 으 면 빈 값 으로 돌아 갑 니 다.다음은 Decode 함수 의 용법 을 설명 하 는 간단 한 테스트 입 니 다.SQL>create table t as select username,defaulttablespace,lock_date from dba_users;
Table created.
SQL> select * from t;
USERNAME DEFAULT_TABLESPACE LOCK_DATE------------------------------ ------------------------------ ---------SYS SYSTEMSYSTEM SYSTEMOUTLN SYSTEMCSMIG SYSTEMSCOTT SYSTEMEYGLE USERSDBSNMP SYSTEMWMSYS SYSTEM 20-OCT-04
8 rows selected.
SQL> select username,decode(lock_date,null,'unlocked','locked') status from t;
USERNAME STATUS------------------------------ --------SYS unlockedSYSTEM unlockedOUTLN unlockedCSMIG unlockedSCOTT unlockedEYGLE unlockedDBSNMP unlockedWMSYS locked
8 rows selected.
SQL> select username,decode(lock_date,null,'unlocked') status from t;
USERNAME STATUS------------------------------ --------SYS unlockedSYSTEM unlockedOUTLN unlockedCSMIG unlockedSCOTT unlockedEYGLE unlockedDBSNMP unlockedWMSYS8 rows selected.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oracle 생성 향후 3일간의 전체 시점 (단계 상세)수요: X 좌표축 시간은 모두 정시 시간으로 앞으로 3일 동안의 예측을 보여준다(x 축은 앞으로 3일 동안의 정시 시간을 보여준다), 3시간마다 한 눈금, 가로 좌표는 모두 24개의 눈금을 보여준다 1단계: 현재 시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.