我有一个SQL查询,我想将其转换为LINQ。我已将数据提取到datatable.I我很困惑如何编写查询的WHERE部分。条件取决于表中的列,如果col_Con为“G”,则使用大于col_Val和30(任何值),否则如果col_Con为“L”,则使用小于col_Val和30(任何值)的条件< / p>
我使用Sqlserver 2005作为SQL查询部分。
SELECT *
FROM Mytable
WHERE
CASE
WHEN col_Con= 'G' THEN
col_Val
ELSE
30
END
<=
CASE
WHEN col_Con= = 'L' THEN
30
ELSE
col_Val
END
这是我的Linq的开始
//Mytable is a DataTable
var drs = from DataRow dr in Mytable.Rows
where
...
select dr;
答案 0 :(得分:5)
var drs = from DataRow dr in Mytable.Rows
where
(col_Con == 'G' ? col_Val : 30) <= (col_Con == 'L' ? 30 : col_Val)
select dr;