Soalan:
Bagaimana untuk mencipta klausa WHERE bersyarat dalam SQL Server, terutamanya apabila keadaan berubah berdasarkan nilai parameter?
Jawapan:
Untuk mencipta klausa WHERE bersyarat, anda boleh menggunakan ungkapan dalam klausa WHERE yang menilai kepada TRUE untuk rekod yang memenuhi syarat dan kepada FALSE untuk rekod yang tidak. Pertimbangkan pertanyaan 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, klausa WHERE mengandungi syarat berikut:
<code class="language-sql">(ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) OR (ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)</code>
Ungkapan bersyarat ini dinilai kepada BENAR untuk rekod yang memenuhi:
Dengan menggunakan ungkapan bersyarat ini, anda boleh menggunakan syarat berbeza secara dinamik pada pertanyaan berdasarkan nilai parameter @JobsOnHold. Ini membolehkan fleksibiliti dan kawalan yang lebih besar semasa menapis data.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Klausa WHERE Bersyarat Berdasarkan Parameter dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!