Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam SQL Server?

Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam SQL Server?

Linda Hamilton
Linda Hamiltonasal
2025-01-18 10:56:10221semak imbas

How to Implement Conditional WHERE Clauses in SQL Server?

Fasal WHERE bersyarat dalam SQL Server

Dalam SQL Server, klausa WHERE bersyarat membolehkan anda menentukan kriteria untuk menapis data berdasarkan syarat tertentu. Dalam sesetengah kes, anda mungkin memerlukan klausa WHERE bersyarat untuk menilai keadaan dan melaraskan penapis dengan sewajarnya. Berikut ialah cara membina dan menggunakan klausa WHERE bersyarat dengan berkesan.

Tatabahasa

Klausa WHERE bersyarat asas mengikuti sintaks berikut:

<code class="language-sql">WHERE 逻辑表达式 AND (CASE WHEN 条件 THEN 表达式1 ELSE 表达式2 END)</code>

Contoh

Mari pertimbangkan contoh yang anda berikan:

<code class="language-sql">SELECT
    DateAppr,
    TimeAppr,
    ...
FROM
    [test].[dbo].[MM]
WHERE
    DateDropped = 0
    AND (CASE
            WHEN @JobsOnHold = 1 THEN DateAppr >= 0
            ELSE DateAppr != 0
        END)</code>

Pertanyaan ini cuba menapis data yang DateDropped ialah 0 dan DateAppr memenuhi syarat tertentu berdasarkan nilai @JobsOnHold. Walau bagaimanapun, sintaksnya tidak betul.

Tatabahasa yang betul

Untuk membetulkan ralat sintaks, sertakan ungkapan bersyarat dalam kurungan:

<code class="language-sql">SELECT
    DateAppr,
    TimeAppr,
    ...
FROM
    [test].[dbo].[MM]
WHERE
    DateDropped = 0
    AND (
        (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0)
        OR
        (ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)
    )</code>

Penjelasan

  • ISNULL(@JobsOnHold, 0): Ini memastikan bahawa jika @JobsOnHold adalah NULL atau tiada, ia dianggap sebagai 0.
  • Pengendali
  • OR memastikan keadaan berfungsi dengan betul dalam kedua-dua kes.

Apabila @JobsOnHold ialah 1, DateAppr mestilah lebih besar daripada atau sama dengan 0. Jika tidak, jika @JobsOnHold bukan 1, maka DateAppr mestilah bukan 0.

Nota lain

  • Gunakan kurungan untuk mengumpulkan dan mengutamakan syarat untuk lebih jelas.
  • Pastikan jenis ungkapan sepadan.
  • Elakkan menggunakan terlalu banyak keadaan bersarang kerana ia boleh menjadi sukar untuk dibaca dan diselenggara.

Dengan mengikut garis panduan ini, anda boleh menggunakan klausa WHERE bersyarat dengan berkesan dalam SQL Server untuk menapis data berdasarkan kriteria tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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