gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:40:24 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2008。

我有一个表格,其中一列类型为 VarChar .它目前充满了实际代表数字的字符串。不幸的是,该列必须保留 VarChar ('1', '2' ... , '1000' ) .

我想查询该字段的最大数值,但因为这是一个 VarChar我得到词典最大值而不是自然顺序最大值。

我想我会尝试使用 COLLATE 来解决这个问题该查询的子句并更改为提供数字自然顺序的排序规则,如 link

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

  • 谢谢。

    最佳答案

    请注意,第三个选项是使用持久化计算列 - 这是转换为数字的值

    这样它只被转换一次 - 在创建或更新时

    -- Create Table with computed column
    CREATE TABLE [dbo].[CCtest]
    (
    [myString] [varchar] NULL,
    [myInt] AS (cast(myString as int)) PERSISTED
    )
    GO

    然后就可以在计算列上创建索引了。

    关于SQL Server - 是否有为数字提供自然顺序的排序规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16935989/

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