1
私はLINQに変換したいSQLクエリを持っています。私はdatatable.Iにデータを引っ張ってきたどのようにクエリのWHEREの部分を書くために混乱しています。 col_Conが "G"の場合、col_Conが "L"の場合はcol_Valおよび30(任意の値)以上の値を使用し、col_Valおよび30(任意の値)未満の場合はLINQ to SQL Where with caseステートメントで
の条件を使用します。SQLクエリ部分にSqlserver 2005を使用しています。ここで
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;
の開始は、(三項演算子です?:) SQLにLINQで 'CASE'を生成するための正しい方法です。 –
本当にCASEではなくifである。 SQLの変換はCASEになりますが。 LinqPadで完全なSQL文を確認することができます。 –
私は 'L'を 'G'に変更する必要があると思いますが、それ以外の場合は両側が同じになります。または30:col_Valのいずれかがスワップされました! – Thunder