해결: Oracle DECODE() 함수 사용 방법

1326 단어
DECODE () 함수는 입력 수치를 함수의 매개 변수 목록과 비교하고 입력 값에 따라 대응하는 값을 되돌려줍니다.함수의 매개 변수 목록은 몇몇 수치와 대응하는 결과 값으로 구성된 몇몇 짝수 형식이다.물론, 어떤 실참 짝과 일치하지 않으면 함수도 기본적으로 되돌아오는 값이 있습니다.SQL의 다른 함수와 달리 DECODE 함수는 빈 값을 식별하고 조작할 수 있습니다.문법:DECODE(control value,value1,result1[,value2,result2...][,default result]);control _value에서 처리하려는 수치입니다.DECODE 함수는 값을 반환 값을 결정하기 위해 다음 일련의 짝짓기와 비교합니다.value1은 짝을 구성하는 수치입니다.입력한 값이 일치하면 해당 결과가 반환됩니다.빈 반환 값에 대응합니다. 키워드 NULL을 사용하여 대응하는result1은 짝을 이루는 결과 값입니다.default_result가 어떤 값과 일치하지 않을 때 함수가 되돌아오는 기본값입니다.예를 들어 selectdecode(x, 1,'x is 1', 2,'x is 2','others')from dual은 x가 1이면'x is 1'로 돌아간다.x가 2이면'x is 2'로 돌아갑니다.그렇지 않으면 others로 돌아갑니다.필요하면 두 값을 비교할 때 SIGN() 함수와 함께 사용할 수 있습니다.SIGN(5-6), 1'Is Positive', -1,'Is Nagative','Is Zero') 역시 CASE로 구현할 수 있습니다.

          
           SELECT CASE SIGN(5 - 6)
            WHEN  1  THEN  'Is Positive'
            WHEN -1 THEN  'Is Nagative'
            ELSE 'Is Zero' END
            FROM DUAL
          

또한 Decode는 Order by에서 사용할 수 있습니다.예: 테이블 테이블subject, subject 있음name 열.말, 수, 밖의 순서에 따라 정렬해야 한다.이 때 디코드로 요구를 쉽게 완성할 수 있습니다.select * from table_subject order by decode(subject name,'국어', 1,'수학', 2,'외국어', 3)(책임 편집: 노조림)

좋은 웹페이지 즐겨찾기