当前位置: 首页 > 面试题库 >

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

施辉
2023-03-14
问题内容

我正在使用SQL Server 2008。

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

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

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

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

谢谢。


问题答案:

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

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

尝试类似的东西

SELECT MAX(CAST (Value as int))
FROM MyTable


 类似资料:
  • 问题内容: 我有一个数组 并且需要对其进行排序,使其看起来像; 我尝试了排序功能; 但这给出了命令 我试图考虑一个正则表达式可以正常工作,但无法解决这个问题。 如果有帮助,格式将始终为2个字母,x个数字,然后是任意数量的字符。 问题答案: 这称为“自然排序”,可以像这样在JS中实现: 要以相反的顺序排序,只需交换参数即可: 或简单地

  • 问题内容: 我认为使用某种顺序才有意义。我想做的是在视图中包括该子句,以便该视图上的所有s都可以忽略它。但是,我担心该订单不一定会延续到,因为它没有指定订单。 是否存在一种情况,即视图指定的顺序不会反映在该视图上的select结果中(该视图中的order by子句除外)? 问题答案: 您不能指望没有显式子句的任何查询中的行顺序。如果查询有序视图,但没有包括子句,则如果它们的顺序正确,请感到惊喜,并

  • 问题内容: 我在postgres中有一个排序问题,其中包含诸如版本之类的值。版本是字符变化的,其值如下所示(无序)。 我如何按照自然顺序排序,这样当我发行时就会给我 代替 问题答案: Postgres允许您按数组排序-本质上就是版本号所代表的含义。因此,您可以使用以下语法: 这是一个完整的示例: 甚至是示威。

  • 问题内容: 使用Python 3.x,我有一个要对其执行自然字母排序的字符串列表。 自然排序: Windows中文件的排序顺序。 例如,以下列表是自然排序的(我想要的): 这是上面列表的“排序”版本(我所拥有的): 我正在寻找一种类似于第一个的排序功能。 问题答案: 在PyPI上有一个名为natsort的第三方库。对于你的情况,可以执行以下任一操作: 你应该注意,它natsort使用通用算法,因此

  • 问题内容: 我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按Name(varchar)ASC排序记录, 但编号始终是第一位的 这是我的问题的一些示例( 注意。mysql首先用0-9排序记录 ) 我想要的是字母顺序,然后是数字 所需的输出 问题答案: 使用以下子句:

  • 问题内容: 我有一些文件需要按名称排序,但是不幸的是,我无法使用常规排序,因为我也想对字符串中的数字进行排序,因此我进行了一些研究,发现所寻找的东西叫做。 我尝试了此处给出的解决方案,并且效果很好。 但是,对于诸如和这样的字符串,该字符串会导致特定的自然键算法失败,因为它仅与第一个整数匹配,在这种情况下,该整数将是和,因此它放弃了排序。因此,我认为可能会帮助匹配字符串中的所有数字并将它们分组在一起