반응형
Oracle DECODE의 표준 SQL 대안
오라클의 DECODE 기능과 동등한 ANSI SQL이 있습니까?
오라클의 디코드 기능은 SQL의 IF-THEN-ELSE 구성입니다.
CASE 표현식은 ANSI SQL 메서드이며, 이 중 "simple"과 "searched"의 두 가지 종류가 있습니다.
1) 간단한 CASE 표현:
CASE col WHEN 1 THEN 'One'
WHEN 2 THEN 'Two'
ELSE 'More'
END
2) 검색된 CASE 식:
CASE WHEN col < 0 THEN 'Negative'
WHEN col = 0 THEN 'Zero'
ELSE 'Positive'
END
CASE WHEN a=1 THEN value1
WHEN a=2 THEN value2
ELSE default
END
Oracle DECODE는 null을 null과 동일하게 취급하지만 CASE(및 다른 비교)는 취급하지 않습니다.
예:a와 b가 모두 null이면 디코딩(a,b,1,0)이 1을 반환합니다.
이 두 문장을 실행하여 차이를 확인합니다.
select case null when null then 'Y' else 'N' end dd from dual;
select decode(null, null, 'Y', 'N') dd from dual;
null을 더하면 디코딩에서는 비교할 수 있지만 그렇지 않은 경우에는 비교할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3212059/standard-sql-alternative-to-oracle-decode
반응형
'programing' 카테고리의 다른 글
| to_sql을 사용하여 팬더 데이터프레임을 오라클 데이터베이스에 쓰는 방법? (0) | 2023.09.16 |
|---|---|
| jquery로 클릭 이벤트를 변경하는 방법? (0) | 2023.09.16 |
| XML 직렬화 및 상속된 유형 (0) | 2023.09.16 |
| Powershell을 사용하여 WMI 또는 원격 없이 원격으로 서비스 중지 (0) | 2023.09.11 |
| WebSphere to Oracle - 올바른 암호를 사용할 수 없습니다. (0) | 2023.09.11 |