MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana COALESCE() Bekerja di MariaDB

Di MariaDB, COALESCE() operator mengembalikan nilai non-NULL pertama dalam daftar, atau NULL jika tidak ada nilai non-NULL.

Sintaks

Sintaksnya seperti ini:

COALESCE(value,...)

Contoh

Berikut adalah contoh sederhana untuk ditunjukkan:

SELECT COALESCE(null, 'Red', 'Black');

Hasil:

Red

Dalam hal ini, Red adalah nilai non-NULL pertama, jadi COALESCE() mengembalikan nilai tersebut.

Black juga bukan NULL, tetapi muncul setelah Red dan tidak dikembalikan.

Contoh Basis Data

Misalkan kita menjalankan kueri berikut:

SELECT
    PetName,
    DOB AS "Date of Birth"
FROM Pets;

Dan kita mendapatkan hasil sebagai berikut:

+---------+---------------+
| PetName | Date of Birth |
+---------+---------------+
| Fluffy  | 2020-11-20    |
| Fetch   | 2019-08-16    |
| Scratch | 2018-10-01    |
| Wag     | 2020-03-15    |
| Tweet   | 2020-11-28    |
| Fluffy  | 2020-09-17    |
| Bark    | NULL          |
| Meow    | NULL          |
+---------+---------------+

Kita dapat melihat bahwa dua baris terakhir memiliki nilai NULL di kolom DOB.

Jika kita ingin mengganti NULL dengan nilai lain, kita dapat mengubah kueri sebagai berikut:

SELECT
    PetName,
    COALESCE(DOB, 'None Supplied') AS "Date of Birth"
FROM Pets;

Hasil:

+---------+---------------+
| PetName | Date of Birth |
+---------+---------------+
| Fluffy  | 2020-11-20    |
| Fetch   | 2019-08-16    |
| Scratch | 2018-10-01    |
| Wag     | 2020-03-15    |
| Tweet   | 2020-11-28    |
| Fluffy  | 2020-09-17    |
| Bark    | None Supplied |
| Meow    | None Supplied |
+---------+---------------+

Ekspresi

COALESCE() mengembalikan nilai saat ini dari ekspresi pertama yang awalnya tidak mengevaluasi ke NULL . Oleh karena itu, jika kita memberikan ekspresi seperti ini:

SELECT COALESCE( null, 5 * 2 );

Kami mendapatkan ini:

10

Ketika Semua Nilai NULL

Jika semua nilai adalah NULL , COALESCE() mengembalikan NULL :

SELECT COALESCE( null, null );

Hasil:

NULL

COALESCE() vs IFNULL()

Saat digunakan dengan dua nilai, COALESCE() bekerja sama dengan IFNULL :

SET @a = null, @b = 52;
SELECT 
    COALESCE(@a, @b), 
    IFNULL(@a, @b);

Hasil:

+------------------+----------------+
| COALESCE(@a, @b) | IFNULL(@a, @b) |
+------------------+----------------+
| 52               | 52             |
+------------------+----------------+

Jumlah Argumen Tidak Valid

Menggunakan COALESCE() tanpa argumen apa pun menghasilkan kesalahan:

SELECT COALESCE();

Hasil:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Langkah Wildcard JSONPath (**) Bekerja di MariaDB

  2. 8 Cara untuk Menambahkan Detik ke Nilai Datetime di MariaDB

  3. Grafik Kustom untuk Memantau Sistem MySQL, MariaDB, MongoDB, dan PostgreSQL Anda - Tips &Trik ClusterControl

  4. MariaDB JSON_SEARCH() Dijelaskan

  5. 4 Cara untuk Memeriksa apakah Tabel Ada di MariaDB