1
我有一个SQL查询,我想转换成LINQ。我已经将数据提取到datatable.I很困惑如何编写查询的WHERE部分。条件取决于表中的列,如果col_Con为“G”,则使用大于col_Val和30(任何值),否则如果col_Con为“L”,则使用小于条件的col_Val和30(任意值)LINQ to SQL与where case case
我正在使用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;
三元运算符的开始(?:)是生成一个'在LINQ to SQL CASE'的正确方法。 –
这不是一个真正的案例,而是一个if。虽然SQL翻译将是一个CASE。你可以在LinqPad中看到完整的SQL语句来检查。 –
我认为'L'需要更改为'G',否则双方将是相同的。或30:col_Val中的一个交换! – Thunder