【问题标题】:Where is the "LEFT" operator in LINQ?LINQ 中的“LEFT”运算符在哪里?
【发布时间】:2009-11-03 14:33:39
【问题描述】:

我使用 SQL Server 2005 运行过这样的查询

SELECT * 
FROM mytable 
WHERE (LEFT (title, 1) BETWEEN @PREFIXFROM AND @PREFIXTO)

我用它来做字母过滤,例如

PREFIXFROM = a
PREFIXTO = c 

我得到了 mytable 中 a 和 c(包括)之间的所有项目

如何在 linq 中执行此操作?

选择所有记录很好.. 但是 1)如何进行“左”操作 和 2) 如何使用非数字字段执行

任何想法表示赞赏!

【问题讨论】:

标签: sql linq between


【解决方案1】:

不要想 SQL - 想一想您想要实现的目标,以及您将如何在 .NET 中实现它。因此,您尝试获取第一个字符,并确定它是否在 'a' 和 'c' 之间:

var query = from row in mytable
            where row.title[0] >= 'a' && row.title[0] <= 'c'
            select row;

或点表示法:

var query = mytable.Where(row => row.title[0] >= 'a' && row.title[0] <= 'c');

或者:

var query = mytable.Where(row => row.title.Substring(0, 1).CompareTo("a") >= 0 &&
                                 row.title.Substring(0, 1).CompareTo("c") <= 0));

【讨论】:

  • 太棒了!谢谢,现在一切都说得通了!
猜你喜欢
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 2010-10-03
  • 1970-01-01
  • 2010-12-11
  • 2015-06-20
相关资源
最近更新 更多