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