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