iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SQL 中怎么拆分字符串中的数值后排序
  • 230
分享到

SQL 中怎么拆分字符串中的数值后排序

2023-06-03 15:06:02 230人浏览 薄情痞子
摘要

本篇文章为大家展示了sql 中怎么拆分字符串中的数值后排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常情形下,一列数据都是整体参与排序,但如果当字段是由字母跟序号组合在一起的复合列,比如现有表

本篇文章为大家展示了sql 中怎么拆分字符串中的数值后排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

通常情形下,一列数据都是整体参与排序,但如果当字段是由字母跟序号组合在一起的复合列,比如现有表TData中列名为NameSerial的一组数据:

Mike105

Rose11

Rose1

Rose5

Mike6

现在需要先按名字排序,再按序号排序。比如Mike6要排在Mike105前面,期望的结果如下:

Mike6

Mike105

Rose1

Rose5

Rose11

由于SQL不支持对字段的单词拆分,所以只能写存储过程拆分数据,然后使用SQL查询来排序。以SQL Server2012为例,自定义数据拆分标量值函数dbo.Words如下:

CREATE FUNCTioN dbo.words(@word VARCHAR(100) , @part INT)  RETURNS VARCHAR(100)

AS

BEGIN

    DECLARE @sub VARCHAR(100)

    DECLARE @tmp VARCHAR(10)

    DECLARE @numIndex INT

    DECLARE @len INT

    DECLARE @i INT

    SET @i = 1

    SET @len = Len(@word)

    WHILE @i<=@len

         BEGIN

             SET @tmp = Substring(@word,@i,1)

             IF(ISNUMERIC(@tmp)=1)

                  BEGIN

                      SET @numIndex = @i

                      BREAK

                  END

             SET @i=@i+1

         END

    IF(@part=1)

         BEGIN

             SET @sub=Substring(@word,1,@numIndex-1)

         END

    ELSE

         BEGIN

             SET @sub=Substring(@word,@numIndex,@len-@numIndex+1)

         END

    RETURN @sub

  END

其中参数@part用于指示当前要拆分的部分,1为名字部分,2为序号部分。

需要注意的是,数值部分拆分出来后,要转换为整数后再排序,否则仍然跟整体排序没区别。之后的排序,只需要如下SQL即可:

SELECT * FROM TData ORDER BY dbo.words(NameSerial,1),cast(dbo.words(NameSerial,2) as int)

本例虽然通过自定义数据库函数的方式实现了拆分函数,但并不通用,且不能移植到其他数据库

这种情况,如果有集算器就方便多了,用SPL实现只要一句话:

connect("db").query("SELECT * FROM TData").sort(NameSerial.words@w())

上述内容就是SQL 中怎么拆分字符串中的数值后排序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: SQL 中怎么拆分字符串中的数值后排序

本文链接: https://www.lsjlt.com/news/234758.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL 中怎么拆分字符串中的数值后排序
    本篇文章为大家展示了SQL 中怎么拆分字符串中的数值后排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常情形下,一列数据都是整体参与排序,但如果当字段是由字母跟序号组合在一起的复合列,比如现有表...
    99+
    2023-06-03
  • mysql中字符串拆分函数是什么
    这篇文章主要介绍了mysql中字符串拆分函数是什么,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:无分隔符的字符串截取题目要求数据库中字段值:实现效果:需要将一行数据变成多行实现的sqlS...
    99+
    2023-06-06
  • SqlServer中怎么利用XML拆分字符串
    SqlServer中怎么利用XML拆分字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 DECLARE @idoc int;...
    99+
    2022-10-18
  • java怎么实现字符串中的字母排序
    这篇文章主要介绍“java怎么实现字符串中的字母排序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java怎么实现字符串中的字母排序”文章能帮助大家解决问题。题目要求java实现字符串中的字母排序并...
    99+
    2023-07-05
  • 怎么用sql获取某字符串中的数字部分
    本篇内容介绍了“怎么用sql获取某字符串中的数字部分”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-18
  • SQL 中怎么按特定字段值排序
    SQL 中怎么按特定字段值排序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 id, name shandong...
    99+
    2022-10-18
  • python中字符串拼接.join()和拆分.split()函数怎么用
    这篇文章主要为大家展示了“python中字符串拼接.join()和拆分.split()函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中字符串拼接.join()和拆分.spl...
    99+
    2023-06-25
  • MySQL 中怎么通过SUBSTRING_INDEX函数拆分字符串为数组单元
    MySQL 中怎么通过SUBSTRING_INDEX函数拆分字符串为数组单元,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。vim t...
    99+
    2022-10-18
  • 怎么在Shell中对字符串进行排序
    怎么在Shell中对字符串进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。【方法一】按ASCII正向排序备注:1) tr将子字符串中的空白转换为换行符,再...
    99+
    2023-06-09
  • SQL Server中的字符串函数怎么用
    本文小编为大家详细介绍“SQL Server中的字符串函数怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL Server中的字符串函数怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-30
  • SQL中怎么根据指定分隔符分解字符串
    SQL中怎么根据指定分隔符分解字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如果有一个字符串 eg: "sun,star,...
    99+
    2022-10-18
  • SQL中怎么提取字符串中的字母
    本篇文章为大家展示了SQL中怎么提取字符串中的字母,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体解法我们创建一个函数,通过调用这个函数来找出所有的字母。CREA...
    99+
    2022-10-18
  • MySQL怎么从字符串中抽取数值
    本篇内容介绍了“MySQL怎么从字符串中抽取数值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! MyS...
    99+
    2022-10-18
  • php怎么利用正则排除字符串中的字符
    两种方法:1、用preg_replace(),可执行正则表达式的搜索和替换,只需将字符串中匹配的字符替换为空字符即可,语法“preg_replace(正则, "", $str)”。2、用preg_match_all(),...
    99+
    2023-05-14
    php php字符串 正则表达式
  • vb中怎么将字符串转换成数值
    在VB中,可以使用`CInt()`函数将字符串转换为整数,使用`CDbl()`函数将字符串转换为双精度浮点数,使用`CDec()`函...
    99+
    2023-10-11
    vb
  • C#中怎么实现一个数值字符串
    本篇文章给大家分享的是有关C#中怎么实现一个数值字符串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#数值字符串首先,我们得搞明白,什么是数值字符串。我们知道,在 C# 中,...
    99+
    2023-06-17
  • PHP中怎么将字符串转换为数值
    今天就跟大家聊聊有关PHP中怎么将字符串转换为数值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。如果包括“.”,“e...
    99+
    2023-06-17
  • 解决Oracle字符串中包含数字、特殊符号的排序问题
    问题描述:   某小区,需要按照小区、楼栋、单元号、房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, 1号楼之后应该是2号楼,但是查询结果却是10号楼 。   尝试解决...
    99+
    2022-10-18
  • MySQL中字符串逗号分隔后去除重复的值,再逗号拼接为新的字符串
    目标效果 原字符串值:101,102,103,102 处理后的值:101,102,103 创建一个函数 CREATE FUNCTION remove_duplicate_values(val V...
    99+
    2023-09-14
    mysql 数据库 sql
  • go怎么删除字符串中的部分字符
    这篇文章将为大家详细讲解有关go怎么删除字符串中的部分字符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。go是什么golang是一种编译语言,可以将代码编译为机器代码,编译后的二进制文件可以直接部署到目标...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作