PostgreSQL의 Oracle DECODE 함수의 경우 CASE 표현식 또는 공용체를 사용할 수 있습니다. CASE 표현식은 조건에 따라 일치하는 첫 번째 결과를 반환합니다. 구문은 CASE WHEN 조건 THEN 결과 ELSE 결과 END입니다. Union은 UNION ALL 연산자를 사용하여 여러 SELECT 문을 결합하고 각 조건을 충족하는 결과 열이 포함된 테이블을 반환합니다.
PostgreSQL의 Oracle DECODE 함수 대체
Oracle DECODE 함수는 조건부 판단에 따라 다른 값을 반환하는 데 사용되는 함수입니다. PostgreSQL에는 DECODE 함수와 완전히 동일한 기능이 없지만 CASE
표현식이나 공용체를 사용하여 비슷한 기능을 얻을 수 있습니다. CASE
表达式或联合来实现类似的功能。
CASE 表达式
CASE
表达式的语法如下:
<code>CASE WHEN условие1 THEN результат1 WHEN условие2 THEN результат2 ... ELSE результат ELSE END</code>
它根据条件依次进行判断,并返回与第一个满足条件的结果。如果没有任何条件满足,则返回 ELSE
结果。
联合
联合是一种使用多个 SELECT 语句从多个表中检索数据的技术。它也可以用于实现 DECODE 函数的功能,方法是使用 UNION ALL
操作符组合多个 SELECT 语句:
<code>SELECT CASE WHEN условие1 THEN résultat1 ELSE NULL END AS результат_1 UNION ALL SELECT CASE WHEN условие2 THEN résultat2 ELSE NULL END AS результат_2 ...</code>
上述查询将返回一个表,其中每行都包含一个满足条件的结果列。
示例
假设我们有一个表 people
,其中包含以下列:
name
- 人员姓名gender
CASE
표현식의 구문은 다음과 같습니다. <code>SELECT name, DECODE(gender, 'M', 'Mr.', 'Ms.') AS title
FROM people;</code>
순차적으로 조건을 기준으로 판단하여 조건을 만족하는 첫 번째 결과를 반환합니다. 조건이 충족되지 않으면 ELSE
결과가 반환됩니다.
Join
Join은 여러 SELECT 문을 사용하여 여러 테이블에서 데이터를 검색하는 기술입니다. 또한 UNION ALL
연산자를 사용하여 여러 SELECT 문을 결합하여 DECODE 함수의 기능을 구현하는 데 사용할 수도 있습니다. <code>SELECT name,
CASE
WHEN gender = 'M' THEN 'Mr.'
WHEN gender = 'F' THEN 'Ms.'
ELSE NULL
END AS title
FROM people;</code>
위 쿼리는 각 행에 결과 열이 포함된 테이블을 반환합니다.
|
|
---|---|
PostgreSQL CASE 표현식: | |
PostgreSQL Union: | rrreee |
위 내용은 Oracle에서 디코드를 PG로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!