LINQ to SQL与where语句一起使用

时间:2011-07-15 10:50:23

标签: .net sql linq case where

我有一个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;

1 个答案:

答案 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;