我有一个数据表,我查询以确定是否存在某个行,有几种可能的情况:
规则1:
Dim rt1 As EnumerableRowCollection(Of Double) = From row In dtCh.AsEnumerable() _
Order By row.Field(Of Int64)("ID") Descending
Where (row.Field(Of String)("L_TYPE") = "A" _
And row.Field(Of Int16)("Customer_Type") = 1)
Select row.Field(Of Double)("Price")
If rt1.Any() Then
return CType(rt1.FirstOrDefault(), Decimal)
End If
规则 2:
Dim rt2 As EnumerableRowCollection(Of Double) = From row In dtCh.AsEnumerable() _
Order By row.Field(Of Int64)("ID") Descending
Where (row.Field(Of String)("L_TYPE") = "B" _
And row.Field(Of Int16)("Customer_Type") = 0)
Select row.Field(Of Double)("Price")
If rt2.Any() Then
return CType(rt2.FirstOrDefault(), Decimal)
End If
还有 2 条规则,如果我为规则一返回了一行,我使用第一个查询返回的价格,如果第一个查询没有返回任何内容,那么我转到第二条规则并使用来自第二个,如有必要,继续进行第三个和第四个...
但这似乎有点冗长,我知道所有可能的场景以及我想检查场景的顺序,有没有办法将这些组合起来并通过一个查询找出价格?
谢谢