LINQ 中的 CASE 語句:理解與實作
LINQ 中的 CASE 語句可讓開發人員評估多個條件,並根據結果指派特定值。它們通常用於資料轉換和操作。
將複雜的 CASE 語句轉換為 LINQ
讓我們考慮原始問題中提供的 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
此語句根據各種條件為 osc_products 表的 products_quantity 欄位指派特定值。要將其轉換為 LINQ,我們可以使用以下語法:
var productsQuantity = osc_products .Select(x => new { x.products_quantity, ItemPromoFlag = x.itempromoflag != "N", ItemCategory1 = new[] { "1", "2", "31" }.Contains(x.itemcat1), ItemSaleStatus = x.itemsalestatus == "S", AvailableQuantity = x.itemqtyonhand - x.itemqtycommitted }) .Select(x => x.products_quantity = x.ItemPromoFlag ? 100000 : (x.ItemCategory1 && x.ItemSaleStatus) ? 100000 : x.itemsalestatus == "O" ? 0 : x.AvailableQuantity );
理解 LINQ 轉換
此 LINQ 語句投影一個新的匿名類型,其中包含現有的 products_quantity 欄位和附加屬性,用於保存條件表達式的布林值。然後,它使用嵌套的 Select 操作根據條件分配計算出的 products_quantity 值。
簡單的 CASE 語句範例
提供的將簡單 CASE 語句轉換為 LINQ 的程式碼範例示範了在 Select 子句中使用三元表達式的用法:
Int32[] numbers = new Int32[] { 1, 2, 1, 3, 1, 5, 3, 1 }; var numberText = ( from n in numbers where n > 0 select new { Number = n, Text = n == 1 ? "One" : n == 2 ? "Two" : n == 3 ? "Three" : "Unknown" } );
此語句使用三元表達式根據數字的值為其分配不同的文字值。三元表達式的語法為:
condition ? true_expression : false_expression
這些範例說明如何將 CASE 語句轉換為 LINQ,提供了一種簡潔且易於維護的方法來評估條件並將值指派給您的資料。
以上是如何將 SQL CASE 語句轉換為 LINQ 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具