【发布时间】:2012-02-22 16:06:59
【问题描述】:
我有一个 SQL 数据库,其中有一个名为 premisis 的表。我希望选择premisisnumber 最高的行。
这是我正在使用的 SQL:
SELECT max(premisisnr) AS premisisnr FROM premisis
问题是,SQL Server 返回了错误的值!在我的表中,我有一行 premisisnumber 10,但使用上面的 SQL 语句返回 premisisnumber 9 的行。
为什么?另外,我该如何解决这个问题?
【问题讨论】:
-
请显示您的表格数据。 MAX() 确实返回最大值。您是否有未发布的 WHERE 子句?
-
该列声明为什么类型?
-
您的列的数据类型是
CHAR。将其更改为数字类型(整数)。 -
尝试
SELECT MAX(CAST(premisisnr AS INT)).....之类的方法,我相信SQL Server 会找到最大数值并返回!但是如果你有一个数字,那么把它存储为一个数字! (不要把它放在char或varchar列中,并期望SQL Server 知道它确实是一个数字......) -
@marc_s:2001 年过去了 11 年,我们仍然没有 HAL 可以为我们做这些事情:(
标签: sql-server