gpt4 book ai didi

sql-server - SELECT MAX 返回错误值

转载 作者:行者123 更新时间:2023-12-01 06:25:33 25 4
gpt4 key购买 nike

我有一个 SQL 数据库,其中包含一个名为 premisis 的表.我希望选择最高的行 premisisnumber .

这是我正在使用的 SQL:

SELECT max(premisisnr) AS premisisnr FROM premisis

问题是,SQL Server 返回了错误的值!在我的表中,我有一排 premisisnumber 10,但使用上面的 SQL 语句返回带有 premisisnumber 的行9.

为什么?另外,我该如何解决这个问题?

最佳答案

听起来 premisisnr 不是数字值,而是 char 或 varchar 值。发生的事情是 SQL Server 基于字符串而不是数值进行排序。所以 10 在 9 之前,因为 1 作为字符出现在 9 作为字符之前。

理想的解决方案是将 premisisnr 字段更改为 int 或数值。如果这不是一个选项,您可以执行以下操作:

如果前提是整数值:

select max(cast(premisisnr as int)) as premisisnr from premisis

如果 premisisnr 是十进制值,则必须将小数转换为所需的精度和小数位数。

关于sql-server - SELECT MAX 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com