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
Lepaskan: 2025-01-18 10:56:10
asal
220 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan