一尘不染

SQL Server-是否存在提供数字自然顺序的排序规则?

sql

我正在使用SQL Server 2008。

我有一张桌子,桌子上有一列type VarChar。它当前填充有实际代表数字的字符串。不幸的是,该列必须保留VarChar ('1', '2' ... , '1000' )

我希望查询该字段以获取最大数值,但是由于这是A,VarChar所以我得到的是词汇最大值,而不是自然顺序最大值。

我以为我会尝试通过使用该COLLATE查询的子句来解决此问题,并更改为提供数字自然顺序的排序规则,例如此链接

  1. 对于SQL Server 2008,是否有这样的排序规则,如果是这样,查询应该是什么?
  2. 如果存在这样的排序规则,我应该使用这种方法还是应该使用强制转换?

谢谢。


阅读 174

收藏
2021-03-08

共1个答案

一尘不染

没有排序规则选项可以对数字进行自然排序。

但是,如果所有值均应为整数,则可以将值强制转换为整数。

尝试类似的东西

SELECT MAX(CAST (Value as int))
FROM MyTable
2021-03-08