等效于 SQL 语句的 LINQ 语句
Equivalent LINQ statement to SQL statement
我有一个包含五列的 table。前四列中只有一列有值,其他列一次为空,我需要从 table 行获取非空值并检查第五列。 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'
第一件事。您的 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??"" })
我有一个包含五列的 table。前四列中只有一列有值,其他列一次为空,我需要从 table 行获取非空值并检查第五列。 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'
第一件事。您的 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??"" })