Heim > Datenbank > Oracle > So konvertieren Sie Decode in Oracle in PG

So konvertieren Sie Decode in Oracle in PG

下次还敢
Freigeben: 2024-05-03 00:21:53
Original
826 Leute haben es durchsucht

Für die Oracle DECODE-Funktion in PostgreSQL können Sie den CASE-Ausdruck oder die Union verwenden. Der CASE-Ausdruck gibt das erste übereinstimmende Ergebnis basierend auf der Bedingung zurück. Die Syntax lautet: CASE WHEN Bedingung DANN Ergebnis ELSE Ergebnis ENDE. Eine Union kombiniert mehrere SELECT-Anweisungen mithilfe des UNION ALL-Operators und gibt eine Tabelle zurück, die die Ergebnisspalten enthält, die jede Bedingung erfüllen.

So konvertieren Sie Decode in Oracle in PG

Ersatz der Oracle DECODE-Funktion in PostgreSQL

Die Oracle DECODE-Funktion ist eine Funktion, die verwendet wird, um unterschiedliche Werte basierend auf einer bedingten Beurteilung zurückzugeben. Es gibt kein genaues Äquivalent der DECODE-Funktion in PostgreSQL, Sie können jedoch CASE-Ausdrücke oder Unions verwenden, um eine ähnliche Funktionalität zu erreichen. CASE 表达式或联合来实现类似的功能。

CASE 表达式

CASE 表达式的语法如下:

<code>CASE
    WHEN условие1 THEN результат1
    WHEN условие2 THEN результат2
    ...
    ELSE результат ELSE
END</code>
Nach dem Login kopieren

它根据条件依次进行判断,并返回与第一个满足条件的结果。如果没有任何条件满足,则返回 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>
Nach dem Login kopieren

上述查询将返回一个表,其中每行都包含一个满足条件的结果列。

示例

假设我们有一个表 people,其中包含以下列:

  • name - 人员姓名
  • gender
CASE-Ausdruck

CASE Die Syntax des Ausdrucks lautet wie folgt:

<code>SELECT name, DECODE(gender, 'M', 'Mr.', 'Ms.') AS title
FROM people;</code>
Nach dem Login kopieren
Es beurteilt basierend auf den Bedingungen der Reihe nach und gibt das erste Ergebnis zurück, das die Bedingungen erfüllt. Wenn keine Bedingungen erfüllt sind, wird ein ELSE-Ergebnis zurückgegeben.

Join

Join ist eine Technik, die mehrere SELECT-Anweisungen verwendet, um Daten aus mehreren Tabellen abzurufen. Es kann auch verwendet werden, um die Funktionalität der DECODE-Funktion zu implementieren, indem mehrere SELECT-Anweisungen mit dem Operator UNION ALL kombiniert werden:

<code>SELECT name, 
    CASE
        WHEN gender = 'M' THEN 'Mr.'
        WHEN gender = 'F' THEN 'Ms.'
        ELSE NULL
    END AS title
FROM people;</code>
Nach dem Login kopieren
Die obige Abfrage gibt eine Tabelle zurück, in der jede Zeile eine Ergebnisspalte enthält.

BeispielAngenommen, wir haben eine Tabelle people mit den folgenden Spalten:
  • gender – Geschlecht einer Person
  • Wir möchten eine Abfrage erstellen, um den Ehrentitel einer Person basierend auf dem Geschlecht zu erhalten: Oracle DECODE Funktion:
    <code>SELECT name, 
        CASE WHEN gender = 'M' THEN 'Mr.' ELSE NULL END AS title
    UNION ALL
    SELECT name, 
        CASE WHEN gender = 'F' THEN 'Ms.' ELSE NULL END AS title
    FROM people;</code>
    Nach dem Login kopieren
    PostgreSQL CASE Ausdruck: rrreeePostgreSQL Union: rrreeeAlle drei Abfragen führen zu den gleichen Ergebnissen wie folgt:
    • name – Personenname
    🎜🎜🎜Name🎜🎜Titel🎜🎜🎜🎜🎜🎜John🎜🎜Mr.🎜🎜🎜🎜Mary🎜🎜M s. 🎜🎜🎜🎜

    Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Decode in Oracle in PG. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage