>  기사  >  데이터 베이스  >  오라클에서 디코드의 사용법은 무엇입니까

오라클에서 디코드의 사용법은 무엇입니까

WBOY
WBOY원래의
2022-03-01 10:23:5742872검색

Oracle에서는 decode() 함수를 사용하여 입력 값을 함수의 매개변수 목록과 비교하고 입력 값을 기준으로 해당 값을 반환합니다. 구문은 "decode(조건, 값 1, 반환 값 1)입니다. , 값 2, 반환 값 2,...값 n, 반환 값 n, 기본값)".

오라클에서 디코드의 사용법은 무엇입니까

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle에서 decode의 사용법은 무엇인가요?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.