CASE ステートメントの LINQ 実装
LINQ では、条件ステートメントを使用して、SQL にある CASE ステートメントの機能をシミュレートできます。特定の例を見てみましょう。
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
この CASE ステートメントを LINQ に変換するには、次のアプローチを使用できます。
// 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);
このクエリは、CASE ステートメントの動作を効果的にシミュレートし、
LINQ は、在庫状況をより簡潔で保守しやすい方法で処理できることに注意してください。 SQL での CASE ステートメントの使用と比較した条件ステートメント。これにより、単一のステートメントを使用して複数の条件を評価し、目的の出力を生成できます。
以上がLINQ を使用して SQL CASE ステートメントをレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。