【发布时间】:2014-12-23 19:03:58
【问题描述】:
我有一个 DataType 为 Nvarchar(max) 的列 样本记录:
Advisor_Code
9001
9002
9003
100001
100001
9011
我试过这个查询:
var code = (from a in db.advisor_Registration select a ).Max(a=>a.advisor_Code);
它返回 9011 但最大 Number 是 100001 。 如何解决它
【问题讨论】:
-
您的列必须是整数,而不是 varchar。
-
你没有数字,你有字符串。
9011 < 100001,但"9011" > "100001"。处理此问题的正常方法是使用正确的数据类型。大概你有一个 nvarchar 类型,因为你的一些代码不能被解释为数字,但是如果你这样做了,你想在比较中如何对待它们? -
@hvd 我明白,但有没有这样的事情:select max(cast(advisor_code as int)) From table
-
@King_Fisher 是的,但需要明确的是,如果不能将 任何 代码转换为 int,SQL 中会严重失败。如果您的数据库中有任何此类代码,您可以接受异常吗?如果是这样,那就是值得在问题中包含的相关信息。
-
@hvd 没有机会出现该异常,因为我的表中只有上述值
标签: asp.net-mvc linq entity-framework asp.net-mvc-4