首页 >数据库 >mysql教程 >如何在 SQL Server 中对混合数字和字母的 VARCHAR 列进行排序?

如何在 SQL Server 中对混合数字和字母的 VARCHAR 列进行排序?

Patricia Arquette
Patricia Arquette原创
2024-12-31 09:50:13579浏览

How to Sort a VARCHAR Column with Mixed Numbers and Letters in SQL Server?

在 SQL Server 中对包含数字的 VARCHAR 列进行排序

对包含字母和数字混合的 VARCHAR 列进行排序可能具有挑战性,尤其是当所需的顺序是数字时

方法:

建议的方法是用前导字符填充数值,以确保它们都具有相同的字符串长度。这允许 SQL Server 以数字方式比较值。

解决方案:

SELECT MyColumn
FROM MyTable
ORDER BY
    CASE ISNUMERIC(MyColumn)
        WHEN 1 THEN REPLICATE('0', 100 - LEN(MyColumn)) + MyColumn
        ELSE MyColumn
    END

在此查询中:

  • ISNUMERIC 检查是否值为数字。
  • REPLICATE 创建一个具有指定数量前导的字符串
  • 此 CASE 表达式的结果将用作排序条件。

示例:

考虑名为“的列” MyColumn”,内容如下值:

  • “1”
  • “10”
  • “2”
  • “A”
  • “B”
  • “B1”

使用上述查询,排序结果为:

1
2
10
A
B
B1

以上是如何在 SQL Server 中对混合数字和字母的 VARCHAR 列进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn