Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL COALESCE () Dijelaskan

Di MySQL, 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, 'Fish', 'Rabbit');

Hasil:

Fish

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

Rabbit juga merupakan nilai non-NULL, tetapi muncul setelah Fish dan tidak dikembalikan.

Ketika Semua Nilai NULL

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

SELECT COALESCE( null, null );

Hasil:

NULL

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, 2 * 10 );

Kami mendapatkan ini:

20

Contoh Basis Data

Misalkan kita menjalankan kueri berikut:

SELECT
  PetName,
  PetType
FROM Pets;

Dan kita mendapatkan hasil sebagai berikut:

PetName	PetType
------- -------
Meow	Cat
Woof	Dog
Tweet	Bird
Awk	NULL
Moo	Cow
Omph	NULL

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

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

SELECT
  PetName,
  COALESCE(PetType, 'Unknown') AS "PetType"
FROM Pets;

Hasil:

PetName	PetType
------- -------
Meow	Cat
Woof	Dog
Tweet	Bird
Awk	Unknown
Moo	Cow
Omph	Unknown

Dalam hal ini kami mengganti semua nilai NULL dengan string Unknown .

Itu tidak perlu menjadi string. Berikut contoh lain yang menggantikan nilai NULL dengan bilangan bulat:

SELECT 
  EmployeeName,
  Salary,
  COALESCE(Salary, 0) AS "Salary (adjusted)"
FROM Employees;

Hasil:

EmployeeName	Salary	Salary (adjusted)
--------------  ------  -----------------
Homer Einstein	NULL	0
Bart Hawking	100000	100000

Jumlah Argumen Tidak Valid

Menggunakan COALESCE() tanpa argumen apa pun menghasilkan kesalahan:

SELECT COALESCE();

Hasil:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL 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. Contoh hubungan banyak-ke-banyak

  2. Laravel 5.2 - Gunakan String sebagai Kunci Utama Kustom untuk Tabel Eloquent menjadi 0

  3. Di PHP dengan PDO, bagaimana cara memeriksa kueri parametris SQL akhir?

  4. Cari string dalam kolom teks di MySQL

  5. Mengapa MySQL melaporkan kesalahan sintaks pada FULL OUTER JOIN?