如何将VARCHAR作为整数查询

时间:2010-08-22 04:19:49

标签: c# sql-server-2008 .net-4.0 linq-to-entities

我有一个包含VARCHAR的列,我有一个标志,用于确定该值是字符串还是整数。我想对整数执行搜索,但它们存储为VARCHAR。我该怎么做?

我试图在where子句中执行此操作。

var q = from x in context.table
        where x.Criteria > 0
        select new
        {
              x
        }

3 个答案:

答案 0 :(得分:1)

CAST(TheColumn AS INTEGER)

答案 1 :(得分:1)

SQL

select isnull(Convert(int, varcharColumn),0)
from atable
where isInteger = 1

LINQ

var q = context.YourCustomView;

答案 2 :(得分:1)

您可能需要将服务器中的值作为字符串下拉,并在LINQ to Objects中进行转换。

var q = context.table
    .Where(x => x.Criteria > 0)
    .Select(x => x.IntOrStringValue)
    .AsEnumerable()
    .Select(v => Convert.ToInt32(v));

x.Criteria > 0替换为表示值为整数的逻辑。 将x.IntOrStringValue替换为包含整数的列。