【发布时间】:2017-02-27 14:01:29
【问题描述】:
如果特定值介于两列的值之间,如何从表中选择一行或多行?
例如在 SQL 中:
SELECT * FROM MyTable WHERE '123ABC' BETWEEN MinValue AND MaxValue
我在 LINQ 中尝试了以下方法(使用 LINQpad):
from d in MyTable
where d.MinValue.CompareTo("ABBBBC") >= 0 &&
d.MaxValue.CompareTo("ABBBBC") <= 0
select d
但它只给了我 0 个结果。如果我知道 MinValue 和 MaxValue 中的两个值并插入它们,例如:
from d in MyTable
where d.MinValue.CompareTo("AAAAAA") >= 0 &&
d.MaxValue.CompareTo("CCCCCC") <= 0
select d
然后它将为我提供数据库中与这些最小值和最大值相对应的所有行,但如果我尝试使用应该属于这两个值的值,则不会出现任何结果。
【问题讨论】:
-
您必须交换
<和>符号。 -
不,那也没有用。如果我从 LINQPad 获取生成的 SQL 语句,很明显我希望我给出确切的最小值和最大值,而不是找到我的值 (x) 介于 MinValue 列和 MaxValue 列之间的行。
标签: c# linq sql-server-2008