Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam Pelayan SQL Tanpa SQL Dinamik?

Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam Pelayan SQL Tanpa SQL Dinamik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-18 11:06:09779semak imbas

How to Implement a Conditional WHERE Clause in SQL Server Without Dynamic SQL?

Fasal WHERE bersyarat dalam SQL Server

Soalan:

Bagaimana untuk melaksanakan klausa WHERE bersyarat dalam SQL Server tanpa menggunakan SQL dinamik atau mencipta berbilang pertanyaan dengan klausa yang berbeza?

Jawapan:

Anda boleh menggunakan kaedah berikut:

<code class="language-sql">SELECT 
    DateAppr,
    TimeAppr,
    TAT,
    LaserLTR,
    Permit,
    LtrPrinter,
    JobName,
    JobNumber,
    JobDesc,
    ActQty,
    (ActQty-LtrPrinted) AS L,
    (ActQty-QtyInserted) AS M,
    ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS N
FROM 
    [test].[dbo].[MM]
WHERE 
    DateDropped = 0
    AND (
    (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) 
    OR 
    (ISNULL(@JobsOnHold, 0) <> 1 AND DateAppr <> 0)
    )</code>

Dalam pertanyaan ini:

    Fungsi
  • ISNULL() menyemak sama ada parameter @JobsOnHold kosong dan mengembalikan 0 jika kosong.
  • Ungkapan bersyarat dalam kurungan menyemak nilai parameter @JobsOnHold. Jika nilainya ialah 1, lajur DateAppr mestilah lebih besar daripada atau sama dengan 0. Jika nilainya bukan 1, lajur DateAppr mestilah tidak sama dengan 0.
  • Pengendali
  • AND memastikan kedua-dua syarat dipenuhi.

Pendekatan ini membolehkan anda menggunakan pertanyaan tunggal dan klausa WHERE bersyarat untuk menapis hasil berdasarkan nilai parameter. Ini adalah cara yang lebih cekap dan ringkas untuk menulis pertanyaan sedemikian daripada menggunakan berbilang pertanyaan atau SQL dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat dalam Pelayan SQL Tanpa SQL Dinamik?. 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