Rumah > pangkalan data > tutorial mysql > Bolehkah saya Menggunakan Penyata IF dalam MS SQL WHERE Klausa?

Bolehkah saya Menggunakan Penyata IF dalam MS SQL WHERE Klausa?

Patricia Arquette
Lepaskan: 2025-01-11 06:49:42
asal
834 orang telah melayarinya

Can I Use IF Statements in MS SQL WHERE Clauses?

Menggunakan pernyataan IF dalam klausa MS SQL WHERE

Adakah mungkin untuk membenamkan pernyataan IF dalam klausa WHERE MS SQL? Sebagai contoh, adakah sintaks berikut sah?

WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'
Salin selepas log masuk

Penyelesaian:

Sintaks di atas tidak sah. Fungsi yang sama boleh dicapai menggunakan pernyataan CASE:

WHERE OrderNumber LIKE
  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
    @OrderNumber 
  ELSE
    '%' + @OrderNumber + '%'
  END
Salin selepas log masuk

Sebagai alternatif, pernyataan IF boleh digunakan, tetapi dalam prosedur tersimpan atau struktur aliran kawalan lain:

IF IsNumeric(@OrderNumber) = 1
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber = @OrderNumber;
END
ELSE
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber LIKE '%' + @OrderNumber + '%';
END
Salin selepas log masuk

Perlu diambil perhatian bahawa menggunakan pernyataan IF secara langsung dalam klausa WHERE tidak dibenarkan. Pernyataan CASE menyediakan cara yang lebih ringkas dan patuh SQL untuk mengendalikan logik bersyarat. Jika anda perlu menggunakan pernyataan IF, anda mesti meletakkannya dalam prosedur tersimpan atau persekitaran lain yang membenarkan pernyataan aliran kawalan.

Atas ialah kandungan terperinci Bolehkah saya Menggunakan Penyata IF dalam MS SQL WHERE Klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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