Oracle에서는 decode() 함수를 사용하여 입력 값을 함수의 매개변수 목록과 비교하고 입력 값을 기준으로 해당 값을 반환합니다. 구문은 "decode(조건, 값 1, 반환 값 1)입니다. , 값 2, 반환 값 2,...값 n, 반환 값 n, 기본값)".
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
Oracle 함수 decode 사용법:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值);
decode의 표현입니다.
DECODE() 함수는 입력 값을 함수의 매개변수 목록과 비교하고, 입력 값을 기준으로 해당 값을 반환합니다. 함수의 매개변수 목록은 여러 숫자 값과 해당 결과 값으로 구성됩니다. 물론 실제 매개변수 시퀀스와 성공적으로 일치하지 못하는 경우에도 함수에는 기본 반환 값이 있습니다.
이 함수의 의미는 다음과 같습니다.
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF
decode(필드 또는 필드 연산, 값 1, 값 2, 값 3)
이 함수의 결과는 필드 또는 필드 연산의 값이 동일할 때입니다. 이 함수는 값 2를 반환하고, 그렇지 않으면 값 3을 반환합니다.
물론 값 1, 값 2 및 값 3도 표현식이 될 수 있습니다. 이 함수는 특정 SQL 문을 훨씬 간단하게 만듭니다
사용 방법:
1. 크기 비교
select decode(sign(변수 1-변수 2),-1, 변수 1, 변수 2) --더 작은 값을 가져옵니다
sign() 함수는 값이 0인지 여부에 따라 각각 반환합니다. 양수 또는 음수 0, 1, -1
예:
Variable 1=10, Variable 2=20
그러면 sign(Variable 1-Variable 2)은 -1을 반환하고 디코딩 결과는 " 변수 1"은 더 작은 값입니다. 값 용도.
2. 이 함수는 SQL 문에 사용됩니다.
Decode 함수는 일련의 중첩된 IF-THEN-ELSE 문과 유사합니다. base_exp를 Compare1, Compare2 등과 차례로 비교합니다. base_exp가 i번째 비교 항목과 일치하면 i번째 해당 값을 반환합니다. base_exp가 비교 값과 일치하지 않으면 기본값이 반환됩니다. 각 비교 값은 순차적으로 평가되며, 일치하는 항목이 발견되면 나머지 비교 값(있는 경우)은 다시 평가되지 않습니다. NULL base_exp는 NULL 비교 값과 동일한 것으로 간주됩니다. 필요한 경우 각 비교 값은 반환 값의 유형이기도 한 첫 번째 비교 값과 동일한 데이터 유형으로 변환됩니다.
Decode 기능은 실제 개발에 매우 유용합니다
Lpad 기능과 결합하여 기본 키 값에 1을 자동으로 추가하고 앞에 0을 추가하는 방법
select LPAD(decode(count(레코드 번호),0,1 ,max(to_number (레코드 번호)+1)),14,'0') tetdmis
eg:
select decode(dir,1,0,1) from a1_interval
dir의 레코드 번호 값이 1이고 0으로 변경되고, 0이면 1이 됩니다
예를 들어 특정 반의 남학생과 여학생의 수를 쿼리하고 싶습니다.
보통 다음과 같이 작성합니다.
select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女;
함께 표시하려면 합치기를 해야 하는데 너무 번거롭습니다
디코드를 사용하려면 한 문장만 있으면 됩니다.
테이블에서 디코드(성별, 남성, 1, 0), 디코드(성별, 여성, 1, 0)를 선택하고
3, 문자 열의 특정 정렬을 수행하는 순서 기준
Order by에서 Decode를 사용할 수도 있습니다.
예: table_subject 테이블에는 subject_name 열이 있습니다. 언어, 숫자, 외국어 순으로 정렬해야 합니다. 이때 Decode를 사용하여 쉽게 요구사항을 완료할 수 있습니다.
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
추천 튜토리얼: "Oracle Video Tutorial"
위 내용은 오라클에서 디코드의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!