SQL Server - 是否有一种排序规则可以提供数字的自然顺序?

2024-01-12

我正在使用 SQL Server 2008。

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

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

我想我会尝试通过使用来解决这个问题COLLATE该查询的子句并更改为提供数字自然顺序的排序规则,如下所示link http://msdn.microsoft.com/en-us/library/ms184391.aspx

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

Thanks.


没有排序选项可以对数字执行自然排序。

但是,如果所有值都应为整数,则可以将该值转换为整数。

尝试类似的东西

SELECT MAX(CAST (Value as int))
FROM MyTable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server - 是否有一种排序规则可以提供数字的自然顺序? 的相关文章

  • 作为 UDF 结果的列上的 Where 子句

    我有一个用户定义的函数 例如myUDF a b 返回一个整数 我试图确保该函数仅被调用一次 并且其结果可以用作WHERE clause SELECT col1 col2 col3 myUDF col1 col2 AS X From myTa
  • 使用“AND”表达式构建动态 SQL,而不混淆嵌套条件?

    总的来说 我对 php 和编码相当陌生 我有一系列条件需要测试它们是否已设置 它们是 option1 option2 option3 if isset option1 if isset option2 if isset option3 qu
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • SQL 分隔符上的逗号分隔列

    这是一个 split 函数 它可以应用为dbo Split sf we fs we 当我将字符串更改为列名时 它不起作用 例如dbo Split table columnName Select from dbo Split email pr
  • Android 中读取未提交的事务

    我正在进行大量数据库操作 这会向我的数据库添加大约 10 000 条记录 由于这可能需要很长时间 因此最好使用事务 db startTransaction do write operations db setTransactionSucce
  • <表值函数> 不是可识别的内置函数名称

    我收到此错误 消息 195 第 15 级 状态 10 第 1 行 fnParseName 不是可识别的内置函数名称 对于这个查询 SELECT fnParseName DOCTORFIRSTNAME DOCTORLASTNAME FROM
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • MySQL 5:我的 GROUP BY 字段的顺序重要吗?

    Peeps 我的 MySQL 查询中有一些聚合 计算字段 我的 GROUP BY 子句是动态生成的 具体取决于用户在 Web 表单中选择的选项 很好奇 GROUP BY 子句中列出的字段顺序是否会对计算产生任何影响 例如 SUM AVERA
  • 将逗号分隔的主数据替换为列中的描述

    有 2 个 SQL Server 表 Products Name Status Code Product 1 1001 1003 Product 2 1001 1005 1006 Status Code Description 1001 S
  • 如何将表移动到 T-SQL 中的架构中

    我想使用 T SQL 将表移动到特定架构中 我正在使用 SQL Server 2008 ALTER SCHEMA TargetSchema TRANSFER SourceSchema TableName 如果你想搬家all表到一个新的模式
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 使用 FileTable 通过 SQL INSERT 创建子目录

    之前 我请求如何在一个目录中创建一个目录FileTable不使用文件 I O API https stackoverflow com q 10483906 175679 我现在想为刚刚创建的父目录创建一个子目录 在插入期间如何分配我的父母
  • 火鸟删除速度很慢

    我正在做这个简单的交易 DELETE FROM ominve01 WHERE CVE OBS IN SELECT CVE OBS FROM minve01 M WHERE M FECHA DOCU lt 31 12 2010 OR FECH
  • 将自动递增值添加到只有一列的表中

    我需要创建一个基本上仅保留索引列表的表 因此 我创建了一个只有一个名为 id 的自动递增列的表 但是 我似乎无法隐式地将自动递增值添加到该表中 我知道通常当您在表中有这样一列 不仅仅是此列 时 您可以执行以下操作 插入表 col1 col2
  • 如何选择列值不不同的每一行

    我需要运行一个 select 语句 返回列值不不同的所有行 例如 EmailAddress 例如 如果表格如下所示 CustomerName EmailAddress Aaron email protected cdn cgi l emai
  • 了解 SQL Server 排序规则中的 Unicode 和代码页

    为什么所有 SQL Server 2008 R2 排序规则都与代码页相关联 所有排序规则都是 unicode 吗 当您的数据库被使用不同代码页的多种语言使用时 如何选择排序规则 谢谢 CHAR 与 NCHAR 即非 Unicode 与 Un
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • INTEGER 到 DATETIME 的转换与 VB6 不同

    我正在查看一些遗留的 VB6 代码 比我的时代早很多年 它对 SQL 2005 数据库运行查询 它提供了日期限制WHERE子句 其中日期作为整数值给出CLng VB6 中的日期 e g WHERE SomeDateField gt 4006
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN

随机推荐