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

Bagaimana IFNULL() Bekerja di MariaDB

Di MariaDB, IFNULL() fungsi memungkinkan kita untuk mengganti nilai NULL dengan nilai lain.

Sintaks

IFNULL(expr1,expr2)

Jika expr1 bukan NULL , IFNULL() mengembalikan expr1 ; jika tidak, ia mengembalikan expr2 .

Juga, dari MariaDB 10.3, NVL() dapat digunakan sebagai alias untuk IFNULL() fungsi. Oleh karena itu, kami memiliki opsi untuk menggunakan sintaks berikut sebagai gantinya:

NVL(expr1,expr2)

Hasilnya sama terlepas dari sintaks yang digunakan.

Contoh

Berikut adalah contoh dasar yang menggunakan NULL konstan:

SELECT IFNULL( null, 'No Value' );

Hasil:

No Value

Dalam hal ini, saya menggunakan IFNULL() untuk mengganti nilai NULL dengan No Value .

Inilah yang terjadi ketika argumen pertama bukan NULL :

SELECT IFNULL( 'Spicy', 'No Value' );

Hasil:

Spicy

Dalam hal ini, argumen pertama dikembalikan, karena bukan NULL .

Contoh Basis Data

Misalkan kita menjalankan kueri berikut:

SELECT * FROM Employees;

Hasil:

empId	name	dept
-----   -----   -----
1	Jess	Sales
2	Rohit	NULL
3	Zohan	Sales
4	Homer	NULL

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

Dalam kueri berikut, kami menggunakan IFNULL() untuk mengganti nilai NULL dengan nilai yang lebih berarti bagi pembaca:

SELECT
    empId,
    name,
    IFNULL( dept, 'Not yet assigned' ) AS dept
FROM Employees;

Hasil:

empId	name	dept
-----   -----   ----------------
1	Jess	Sales
2	Rohit	Not yet assigned
3	Zohan	Sales
4	Homer	Not yet assigned

Ekspresi

Nilai saat ini dari argumen pertama dievaluasi. Oleh karena itu, jika kita memberikan ekspresi seperti berikut:

SELECT IFNULL( 3 * 7, 0 );

Kami mendapatkan ini:

21

Jadi, kami tidak mendapatkan 3 * 7 bagian. Kami mendapatkan hasil dari ekspresi itu (yang dalam hal ini adalah 21 ).

Hal yang sama berlaku ketika hasil ekspresi adalah NULL . Misalnya, jika kita menjalankan kode berikut:

SELECT IFNULL( 3 / 0, 0 );

Kami mendapatkan ini:

0.0000

Namun, ini adalah contoh yang berbahaya. Nol adalah sebuah nilai. NULL tidak.

Mengembalikan nol ketika ada nilai NULL bisa menyesatkan atau bahkan sepenuhnya salah. Bayangkan jika kita berhadapan dengan harga. Kami bisa berakhir dengan harga nol, yang bisa jadi salah dan menghabiskan banyak uang bagi bisnis.

Oleh karena itu dalam kasus seperti itu biasanya lebih baik menggunakan nilai yang lebih bermakna yang menyampaikan kepada pembaca bahwa tidak ada nilai.

Contoh:

SELECT IFNULL( 3 / 0, 'No value' );

Hasil:

No value

NVL() Fungsi

Dimulai dengan MariaDB 10.3, NVL() adalah alias untuk IFNULL() . Oleh karena itu, kita dapat mengganti IFNULL() dengan NVL() dalam salah satu contoh di atas.

Contoh:

SELECT NVL( 3 / 0, 'No value' );

Hasil:

No value

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memasang, Mengamankan, dan Menyetel Kinerja Server Database MariaDB

  2. DBaaS, cloud, dan perutean kueri transparan

  3. Apa yang Baru di MariaDB MaxScale 2.4

  4. Bagaimana UUID_SHORT() Bekerja di MariaDB

  5. Bagaimana PERIOD_ADD() Bekerja di MariaDB