即使我不使用ABS(),SQL MAX()函数也会选择绝对值最大的值?

时间:2015-07-01 15:12:56

标签: sql sql-server-2008 aggregate

我正在尝试获取列的最大值,并且它以绝对值返回最大数字。例如,假设我们有TABLE:

 TAG | VALUE
-------------
  A  |  1.5
  B  | -3.0
  C  |  0.5
  D  |  2.0
  E  | -2.5

我正在做的查询很简单

SELECT TAG, MAX(VALUE)
FROM TABLE
GROUP BY TAG

但我得到的结果是

-3.0

从技术上讲,这是绝对值最高的值,但不是最高值(2.0)。此VALUE字段存储为nvarchar(255),并且我没有表本身的编辑权限。也许我可以在新查询中更改它的格式(假设可以解决问题)?

1 个答案:

答案 0 :(得分:4)

SELECT TAG, MAX(cast(VALUE as decimal(10,1)))
FROM TABLE
GROUP BY TAG