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

Menggunakan Pernyataan Kasus Dengan IS NULL dan IS NOT NULL

Anda menyalahgunakan case ekspresi. Ada dua bentuk. Bentuk yang Anda inginkan adalah:

(CASE WHEN userName IS NULL THEN 'was null'
      WHEN userName IS NOT NULL THEN 'was not null'
 END) AS caseExpressionTest

Catatan:Tidak ada userName setelah CASE .

Ini memeriksa setiap kondisi yang berhenti di awal.

MySQL menafsirkan boolean sebagai nilai yang valid. Jadi versi Anda adalah:

-- when userName is NULL
(CASE userName
    WHEN 0 THEN 'was null'
    WHEN 1 THEN 'was not null'
END AS caseExpressionTest

Ini akan mengembalikan NULL .

Atau:

-- when userName is not NULL
(CASE userName
    WHEN 1 THEN 'was null'
    WHEN 0 THEN 'was not null'
END AS caseExpressionTest

Agaknya, userName adalah string. Ini akan mengonversi userName ke bilangan bulat berdasarkan digit terdepan. Jika tidak ada digit awal, Anda mendapatkan 0 , itulah sebabnya ada kecocokan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa urutan evaluasi untuk ekspresi yang melibatkan variabel pengguna tidak ditentukan?

  2. Cara terbaik untuk menangani penyimpanan/menampilkan tanggal di zona waktu yang berbeda di PHP?

  3. Dapatkan posisi baris dalam kueri MYSQL

  4. Bantuan kueri sql Magento diperlukan dengan kueri besar-besaran

  5. Pencarian SQL jamak/tunggal