我有一个包含VARCHAR的列,我有一个标志,用于确定该值是字符串还是整数。我想对整数执行搜索,但它们存储为VARCHAR。我该怎么做?
我试图在where子句中执行此操作。
var q = from x in context.table
where x.Criteria > 0
select new
{
x
}
答案 0 :(得分:1)
CAST(TheColumn AS INTEGER)
答案 1 :(得分:1)
select isnull(Convert(int, varcharColumn),0)
from atable
where isInteger = 1
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
替换为包含整数的列。