首页 > 数据库 >SQL Server 中将字符串按数字排序

SQL Server 中将字符串按数字排序

时间:2024-04-22 10:11:34浏览次数:16  
标签:数字 CAST 示例 Server TRY YourColumn SQL 字符串 排序

方法一:使用 CAST 或 CONVERT

我们可以使用 CAST 或 CONVERT 函数将字符串转换为数字,然后按照数字进行排序。示例如下:

SELECT *
FROM YourTable
ORDER BY CAST(YourColumn AS INT)

方法二:使用 TRY_CAST 或 TRY_CONVERT

如果我们不确定字符串中的所有值都可以成功转换为数字,我们可以使用 TRY_CAST 或 TRY_CONVERT 函数。这两个函数会尝试将值转换为指定的数据类型,如果无法转换则返回 NULL。示例如下:

SELECT *
FROM YourTable
ORDER BY TRY_CAST(YourColumn AS INT)

方法三:使用 PATINDEX 和 SUBSTRING

如果我们的字符串中包含其他非数字字符,我们可以使用 PATINDEX 函数找到数字的起始位置,并使用 SUBSTRING 函数将其提取出来,然后按照数字进行排序。示例如下:

SELECT *
FROM YourTable
ORDER BY CAST(SUBSTRING(YourColumn, PATINDEX('%[0-9]%', YourColumn), LEN(YourColumn)) AS INT)

方法四:使用正则表达式

在 SQL Server 2016 及以上版本中,我们可以使用内置的正则表达式功能来提取字符串中的数字,并按照数字进行排序。示例如下:

SELECT *
FROM YourTable
ORDER BY CAST('' AS XML).value('xs:double((.*[0-9])+)[1]', 'FLOAT')

标签:数字,CAST,示例,Server,TRY,YourColumn,SQL,字符串,排序
From: https://www.cnblogs.com/sumu80/p/18150079

相关文章

  • SQL+WHERE+别名+过滤的问题 Column 'code' in where clause is ambiguous
    背景有两张表,父表task和子表sub_task,它们使用id关联,并且都有自己的编号code,但是在分页查询子任务列表时,编号需要使用父表编号+子表编号进行拼接(比如,task表编号为zh001,sub_task表编号为01,则页面展示为zh001-01),并且需要根据组成的编号过滤。问题实际项目使用时,sql......
  • web server apache tomcat11-14-CGI
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目从零手写实现tomcatminicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserverapachetomcat11-02-setup启动web......
  • Windows Server 2008 R2 OVF, updated Apr 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2008R2OVF,updatedApr2024(sysin)-VMware虚拟机模板WindowsServer2008R2简体中文版OVF,2024年4月更新请访问原文链接:WindowsServer2008R2OVF,updatedApr2024(sysin)-VMware虚拟机模板,查看最新版。原创作品,转载请保留出处。作者主......
  • Windows 7 & Windows Server 2008 R2 简体中文版下载 (updated Apr 2024)
    Windows7&WindowsServer2008R2简体中文版下载(updatedApr2024)Windows7&WindowsServer2008R2(2024年4月更新)请访问原文链接:Windows7&WindowsServer2008R2简体中文版下载(updatedApr2024),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • Windows Server 2022 OVF, updated Apr 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2022OVF,updatedApr2024(sysin)-VMware虚拟机模板2024年4月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:WindowsServer2022OVF,updatedApr2024(sysin)-VMware虚拟机模板,查看最新版。原创作品,转载请保留出处。作......
  • Windows Server 2022 中文版、英文版下载 (updated Apr 2024)
    WindowsServer2022中文版、英文版下载(updatedApr2024)WindowsServer2022正式版,x64请访问原文链接:WindowsServer2022中文版、英文版下载(updatedApr2024),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org此次发布更新了什么?答:版本号,当然还有…2021.09......
  • Windows Server 2019 OVF, updated Apr 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedApr2024(sysin)-VMware虚拟机模板2024年4月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:WindowsShttps://sysin.org/blog/windows-server-2019-ovf/erver2019OVF,updatedApr2024(sysin)-VMware虚......
  • Windows Server 2019 中文版、英文版下载 (updated Apr 2024)
    WindowsServer2019中文版、英文版下载(updatedApr2024)WindowsServer2019Version1809,2024年4月更新请访问原文链接:WindowsServer2019中文版、英文版下载(updatedApr2024),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org本站将不定期发布官方原版......
  • Windows Server 2016 OVF, updated Apr 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2016OVF,updatedApr2024(sysin)-VMware虚拟机模板2024年4月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:WindowsServer2016OVF,updatedApr2024(sysin)-VMware虚拟机模板,查看最新版。原创作品,转载请保留出处。作......
  • Windows Server 2016 中文版、英文版下载 (updated Apr 2024)
    WindowsServer2016中文版、英文版下载(updatedApr2024)WindowsServer2016Version1607,2024年4月更新请访问原文链接:WindowsServer2016中文版、英文版下载(updatedApr2024),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org本站将不定期发布官方原版......