Heim >Backend-Entwicklung >C++ >Wie kann ich SQL-CASE-Anweisungen mit LINQ replizieren?
LINQ-Implementierung von CASE-Anweisungen
In LINQ können Sie bedingte Anweisungen verwenden, um die Funktionalität von CASE-Anweisungen in SQL zu simulieren. Sehen wir uns ein konkretes Beispiel an:
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
Um diese CASE-Anweisung in LINQ zu konvertieren, können Sie den folgenden Ansatz verwenden:
// 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);
Diese Abfrage simuliert effektiv das Verhalten der CASE-Anweisung und aktualisiert die Lagerbestandsstatus von der Produktion bis zur Handelsseite wie vorgesehen.
Beachten Sie, dass LINQ im Vergleich zur Verwendung eine präzisere und wartbarere Möglichkeit zur Handhabung bedingter Anweisungen bietet CASE-Anweisungen in SQL. Es ermöglicht Ihnen, eine einzige Anweisung zu verwenden, um mehrere Bedingungen auszuwerten und die gewünschte Ausgabe zu erzeugen.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-CASE-Anweisungen mit LINQ replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!