Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menukar decode ke pg dalam oracle

Bagaimana untuk menukar decode ke pg dalam oracle

下次还敢
下次还敢asal
2024-05-03 00:21:53785semak imbas

Untuk fungsi DECODE Oracle dalam PostgreSQL, anda boleh menggunakan ungkapan CASE atau kesatuan. Ungkapan CASE mengembalikan hasil padanan pertama berdasarkan syarat Sintaks ialah: CASE WHEN condition THEN result ELSE result END. Kesatuan menggabungkan berbilang pernyataan SELECT menggunakan operator UNION ALL, mengembalikan jadual yang mengandungi lajur hasil yang memenuhi setiap syarat.

Bagaimana untuk menukar decode ke pg dalam oracle

Penggantian fungsi Oracle DECODE dalam PostgreSQL

Fungsi Oracle DECODE ialah fungsi yang digunakan untuk mengembalikan nilai yang berbeza berdasarkan pertimbangan bersyarat. Tiada persamaan tepat fungsi DECODE dalam PostgreSQL, tetapi anda boleh menggunakan ungkapan atau kesatuan CASE untuk mencapai fungsi yang serupa. 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
Ekspresi KES

KES Sintaks ungkapan adalah seperti berikut:

<code>SELECT name, DECODE(gender, 'M', 'Mr.', 'Ms.') AS title
FROM people;</code>
Ia menilai berdasarkan syarat dalam urutan dan mengembalikan hasil pertama yang memenuhi syarat. Jika tiada syarat dipenuhi, hasil ELSE dikembalikan.

Sertai

Sertai ialah teknik yang menggunakan berbilang penyataan SELECT untuk mendapatkan semula data daripada berbilang jadual. Ia juga boleh digunakan untuk melaksanakan kefungsian fungsi DECODE dengan menggabungkan berbilang pernyataan SELECT menggunakan operator UNION ALL:

<code>SELECT name, 
    CASE
        WHEN gender = 'M' THEN 'Mr.'
        WHEN gender = 'F' THEN 'Ms.'
        ELSE NULL
    END AS title
FROM people;</code>
Pertanyaan di atas akan mengembalikan jadual di mana setiap baris mengandungi lajur Hasil.

ContohAndaikan kita mempunyai jadual orang dengan lajur berikut:
  • Jantina - Gender orang
  • Kami ingin membuat pertanyaan untuk mendapatkan kehormatan seseorang berdasarkan jantina: oracle decode Fungsi:
    <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>
    postgresql Expression: rrreeeepostgresql Union: rrreeeKetiga-tiga pertanyaan akan menghasilkan keputusan yang sama seperti berikut: Cik
    • nama - Nama orang
    🎜🎜

    Atas ialah kandungan terperinci Bagaimana untuk menukar decode ke pg dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Artikel sebelumnya:Penggunaan instr dalam oracleArtikel seterusnya:Penggunaan instr dalam oracle