Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Pernyataan KES dengan betul dalam SQL Server 2008 WHERE Klausa?

Bagaimanakah Saya Boleh Menggunakan Pernyataan KES dengan betul dalam SQL Server 2008 WHERE Klausa?

DDD
Lepaskan: 2025-01-11 10:50:43
asal
328 orang telah melayarinya

How Can I Correctly Use a CASE Statement in a SQL Server 2008 WHERE Clause?

SQL Server 2008: Menggunakan Pernyataan CASE dengan betul dalam Klausa WHERE

Menggunakan pernyataan CASE dalam fasal WHERE dalam SQL Server 2008 boleh membawa kepada ralat jika sintaks tidak betul. Panduan ini menjelaskan penggunaan yang betul dan menawarkan alternatif.

Betul CASE Peletakan Penyata

Pernyataan CASE hendaklah menjadi sebahagian daripada ungkapan yang lebih besar dalam klausa WHERE, bukan keadaan kendiri. Contohnya:

<code class="language-sql">WHERE co.DTEntered = CASE 
                          WHEN LEN('blah') = 0 
                               THEN co.DTEntered 
                          ELSE '2011-01-01' 
                     END</code>
Salin selepas log masuk

Ralat Sintaks Biasa

Contoh berikut menunjukkan penggunaan yang salah yang akan mengakibatkan ralat:

<code class="language-sql">WHERE 
    CASE LEN('TestPerson')
        WHEN 0 THEN co.personentered  = co.personentered
        ELSE co.personentered LIKE '%TestPerson'
    END </code>
Salin selepas log masuk

Alternatif yang Lebih Cekap: Menggunakan OR

Untuk senario yang lebih mudah, menggabungkan OR kenyataan selalunya memberikan penyelesaian yang lebih cekap dan boleh dibaca daripada menggunakan CASE dalam klausa WHERE:

<code class="language-sql">WHERE (
        (LEN('TestPerson') = 0 
             AND co.personentered = co.personentered
        ) 
        OR 
        (LEN('TestPerson') <> 0 
             AND co.personentered LIKE '%TestPerson')
      )</code>
Salin selepas log masuk

Implikasi Prestasi

Klausa

Kompleks WHERE, tidak kira sama ada ia menggunakan pernyataan CASE atau logik rumit lain, boleh memberi kesan negatif terhadap prestasi pertanyaan dan menghalang keupayaan pengoptimum pertanyaan untuk menggunakan indeks dengan berkesan. Sentiasa teliti menganalisis dan mengoptimumkan struktur pertanyaan anda untuk hasil terbaik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pernyataan KES dengan betul dalam SQL Server 2008 WHERE Klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan