等效的 LINQ 语句到 SQL 语句

本文关键字:语句 SQL LINQ | 更新日期: 2023-09-27 18:32:55

我有一个有五列的表格。前四列中只有一列具有值,而另一列一次为空,我需要从表行中获取该非空值并检查第五列。下面的sql语句根据我的要求工作正常。但我需要使用 LINQ 做同样的事情。 请建议如何使用 LINQ 实现相同的目标?还是等效的 LINQ 语句?

 SELECT 
   CASE 
      WHEN col1 is not null THEN col1 
      WHEN col2 is not null  THEN col2 
      WHEN col3 is not null  THEN col3 
      WHEN col4 is not null  THEN col4 
   END 
 FROM MyTable where col5 ='abc'

等效的 LINQ 语句到 SQL 语句

第一件事。您的 sql 不正确。它必须是SELECT COALESCE(col1,col2,col3,col4) AS COL FROM MyTable where col5 ='abc'.

var myObj = db.MyTable.Where(s => s.Col5 == 'abc').Select(s=> new {COL = s.col1??s.col2??s.col3??s.col4??"" })