Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?

Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?

Susan Sarandon
Susan Sarandonasal
2024-12-29 03:50:13408semak imbas

How Can I Replicate SQL CASE Statements Using LINQ?

Pelaksanaan LINQ Penyata KES

Dalam LINQ, anda boleh menggunakan pernyataan bersyarat untuk mensimulasikan kefungsian pernyataan CASE yang terdapat dalam SQL. Mari kita periksa contoh khusus:

osc_products.products_quantity =
CASE 
   WHEN itempromoflag <> 'N' THEN 100000
   WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000
   WHEN itemsalestatus = 'O' THEN 0
   ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted 
END  

Untuk menukar penyataan CASE ini kepada LINQ, anda boleh menggunakan pendekatan berikut:

// Linq syntax
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag.Equals("Y") && 
            items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select items;

// Alternate lambda syntax with expression body
var query2 = db.cdsItems
    .Where(items => items.ItemHandHeldFlag.Equals("Y") && 
            (items.ItemQtyOnHand - items.ItemQtyCommitted > 0))
    .Select(items => items);

Pertanyaan ini mensimulasikan gelagat pernyataan CASE dengan berkesan dan mengemas kini status stok daripada pengeluaran ke tapak perdagangan seperti yang dimaksudkan.

Perhatikan bahawa LINQ menyediakan cara yang lebih ringkas dan boleh diselenggara untuk mengendalikan pernyataan bersyarat berbanding dengan menggunakan pernyataan CASE dalam SQL. Ia membolehkan anda menggunakan satu pernyataan untuk menilai berbilang keadaan dan menghasilkan output yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?. 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