Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana IIF() Bekerja di SQL Server

Di SQL Server, IIF() fungsi (jangan bingung dengan IF pernyataan) adalah fungsi bersyarat yang menampilkan argumen kedua atau ketiga berdasarkan evaluasi argumen pertama.

Ini adalah cara singkat untuk menulis CASE ekspresi. Ini secara logis setara dengan CASE WHEN X THEN Y ELSE Z END dengan asumsi IIF(X, Y, Z) .

IIF() adalah singkatan dari JIKA Segera .

Sintaks

Sintaksnya seperti ini:

IIF ( boolean_expression, true_value, false_value )

Dimana:

  • boolean_expression adalah ekspresi yang akan dievaluasi.
  • nilai_sebenarnya dikembalikan jika boolean_expression benar.
  • nilai_palsu dikembalikan jika boolean_expression salah atau tidak diketahui.

Seperti halnya CASE ekspresi, IIF() pernyataan hanya dapat disarangkan hingga level maksimum 10.

Contoh

Berikut adalah contoh dasar untuk menunjukkan bagaimana IIF() bekerja.

SELECT IIF( 1 < 2, 'True', 'False' );

Hasil:

True

Dalam hal ini, ekspresi yang akan dievaluasi adalah 1 < 2 . Benar bahwa 1 kurang dari 2 sehingga argumen kedua dikembalikan.

Ini setara dengan melakukan hal berikut.

SELECT 
  CASE WHEN 1 < 2 THEN 'True'
    ELSE 'False'
  END;

Hasil:

True

Dalam contoh ini saya menggunakan kata “Benar” dan “Salah” tetapi saya bisa menggunakan apa saja.

Misalnya, saya bisa melakukan ini sebagai gantinya:

SELECT IIF( 1 < 2, 'Fail', 'Pass' );

Hasil:

Fail

Atau itu bisa menjadi sesuatu yang sepenuhnya dihapus dari jawaban tipe biner "benar" atau "salah".

Misalnya:

SELECT IIF( 1 < 2, 'Deadlift', 'Bench Press' );

Hasil:

Deadlift

Menguji Variabel

Dalam praktiknya, Anda biasanya menguji variabel, kolom, dll daripada konstanta seperti pada contoh sebelumnya.

Berikut adalah contoh yang menguji sebuah variabel.

DECLARE @bankBalance int = 123;
SELECT IIF(@bankBalance > 100, 'Rich!', 'Poor');

Hasil:

Rich!

Contoh Basis Data

Berikut adalah contoh yang menggunakan kolom dari database.

SELECT TOP(10)
    Name,
    Population,
    IIF( 
        Population > 400000, 
        'Big City', 
        'Small City' 
        ) AS 'Big/Small'
FROM city;

Hasil:

+----------------+--------------+-------------+
| Name           | Population   | Big/Small   |
|----------------+--------------+-------------|
| Kabul          | 1780000      | Big City    |
| Qandahar       | 237500       | Small City  |
| Herat          | 186800       | Small City  |
| Mazar-e-Sharif | 127800       | Small City  |
| Amsterdam      | 731200       | Big City    |
| Rotterdam      | 593321       | Big City    |
| Haag           | 440900       | Big City    |
| Utrecht        | 234323       | Small City  |
| Eindhoven      | 201843       | Small City  |
| Tilburg        | 193238       | Small City  |
+----------------+--------------+-------------+

Fungsi IIF() Bersarang

Berikut ini contoh penyarangan IIF() fungsi. Dengan "bersarang" yang saya maksud adalah saya melewati IIF() lain berfungsi sebagai argumen ke bagian luar IIF() fungsi.

DECLARE @bankBalance int = 123;
SELECT IIF(
    @bankBalance > 100, 
    IIF(@bankBalance > 150, 'Rich!', 'Wealthy'), 
    'Poor'
    );

Hasil:

Wealthy

Anda dapat membuat sarang IIF() berfungsi hingga level 10.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Cara untuk Memeriksa Baris Duplikat di SQL Server

  2. Antarmuka Jaringan SQL Server:String koneksi tidak valid [87]

  3. T-SQL - Aliasing menggunakan =versus as

  4. Cara menentukan apakah bilangan itu float atau integer

  5. Cara memperbarui kunci utama