2009-01-24 54 views
4

如何在Linq to SQL(vb.net)中執行一個案例。Linq to SQL Case在VB.NET中何時?

在SQL它會是這樣:

SELECT 
CASE 
    WHEN condition THEN trueresult 
    [...n] 
[ELSE elseresult] 
END 

我將如何做到這一點的LINQ to SQL的?

+1

接受的答案不正確,因爲它與問題標題中指定的語言不符 – 2013-01-22 20:32:18

回答

4

檢查發現各種查詢的更多例子了這一點

var data = from d in db.tb select new { 

CaseResult = (

d.Col1 == 「Case1」 ? "Case 1 Rised" : 

d.Col1 == 「Case2」 ? "Case 2 Rised" : 

"Unknown Case") 

}; 

請注意,[?符號=然後],[:符號=或]。

+0

優秀!感謝更新! – EdenMachine 2010-05-17 20:31:36

+8

這不適用於VB.NET。需要使用If(cond,true,false) – Robert4Real 2011-02-09 14:59:54

3

我還沒有試過,但你可以做一些事情,如:

Dim query = From tbl In db.Table _ 
      Select result =_ 
       If(tbl.Col1 < tbl.Col2,"Less than",_ 
        If(tbl.Col1 = tbl.Col2,"Equal to","Greater than")) 

你只需要保持嵌套IF函數來處理所有的情況。

您可以在http://msdn.microsoft.com/en-us/library/bb386913.aspx

+0

謝謝!我想這將不得不做。 – EdenMachine 2009-01-25 04:31:15

11
var data = from d in db.tb select new { 

CaseResult = If (d.Col1 = 「Case1」, "Case 1 Rised", If (d.Col1 = 「Case2」, "Case 2 Rised", "Unknown Case")) 

};