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

Cara Short-Circuit SQL Where Clause

SQL Server tidak melakukan hubungan arus pendek (juga tidak seharusnya).

Jika Anda membutuhkannya untuk tidak mencoba sesuatu dalam keadaan tertentu, Anda perlu memaksakannya dengan cara Anda menulis kueri.

Untuk kueri ini, perbaikan termudah adalah menggunakan CASE ekspresi di WHERE . Anda klausa.

declare @queryWord as nvarchar(20) = 'asdas'

SELECT  * FROM TABLE_1 
WHERE TABLE_1.INIT_DATE = (CASE WHEN ISDATE(@queryWord) = 1 
                                THEN CONVERT(Date, @queryWord)
                           ELSE NULL  END)

Tidak langsung, CASE dan query-nesting adalah dua cara yang didukung yang dapat saya pikirkan untuk memaksa urutan evaluasi untuk kondisi dependen dalam SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server dan Kerentanan Spectre/Meltdown

  2. Pekerjaan Agen SQL - Daftar tarik-turun Jalankan Sebagai kosong

  3. Pisahkan nilai Kolom String

  4. parameter opsional di SQL Server disimpan proc?

  5. Dapatkan lembar Excel ke tabel temp menggunakan skrip