SQL 字母数字混合型字段 按里面的数字排序

时间:2010-04-23 18:18:00 

网上找了很多。貌似没什么好的解决办法。

自己参考了下。把它直接整成一条SQL语句了。

不过字段的格式只允许前面或者后面有字符。中间不允许出现字符

字段如下。前面可能有字符也可能没有,后面也一样。我们要的结果是:按字段里面的数字升序排列。

正常情况下。我们只要 order by DishesEnname 貌似就可以。但如果字段值是这样子的:"L101"或者"101"

那结果就不是我们预期的了。因为它把"L101"或者"101"排到最前面去了。而我们要的结果是排在后面的。

解决的SQL语句如下:

select DishesEnname,Cast((left(right(DishesEnname,len(DishesEnname)-patindex('%[0-9]%',DishesEnname)+1)+'a',patindex('%[a-z,A-Z]%',right(DishesEnname,len(DishesEnname)-patindex('%[0-9]%',DishesEnname)+1)+'a')-1)) as int) from tdishes
where DishesDepartmentNo=1590
order by Cast((left(right(DishesEnname,len(DishesEnname)-patindex('%[0-9]%',DishesEnname)+1)+'a',patindex('%[a-z,A-Z]%',right(DishesEnname,len(DishesEnname)-patindex('%[0-9]%',DishesEnname)+1)+'a')-1)) as int)

结果图如下:

 



结果正是我们所需要的。

具体的可以拿两个小例子来看下。

去掉左侧的字母:
declare @t as varchar(200)
select @t='1234567aa'
select right(@t,len(@t)-patindex('%[0-9]%',@t)+1)

 

去掉右侧的字母:
declare @tt varchar(200)
select @tt='123456'+'a'
select left(@tt,patindex('%[a-z,A-Z]%',@tt)-1)

标签:sql,字符串,数字,排序
0
投稿

猜你喜欢

  • vue-cli npm如何解决vue项目中缺失core-js的问题

    2024-04-28 09:30:26
  • 用javascript做拖动层布局的思路

    2008-05-30 13:38:00
  • Python基本知识点总结

    2022-06-04 13:35:49
  • python随机模块random的22种函数(小结)

    2022-08-11 18:09:03
  • Python免费试用最新Openai API的步骤

    2022-04-08 09:03:03
  • 基于pygame实现童年掌机打砖块游戏

    2023-09-18 20:41:28
  • Python定义二叉树及4种遍历方法实例详解

    2021-05-28 06:22:55
  • mysql or走索引加索引及慢查询的作用

    2024-01-19 10:21:06
  • 关于python中readlines函数的参数hint的相关知识总结

    2023-12-31 02:37:12
  • pytorch索引查找 index_select的例子

    2023-09-12 20:45:05
  • python 存储json数据的操作

    2022-10-02 13:14:14
  • FSO组件之驱动器操作asp源码

    2010-05-03 10:59:00
  • Python classmethod装饰器原理及用法解析

    2023-02-14 06:59:01
  • DBCC CHECKIDENT 重置数据库标识列从某一数值开始

    2024-01-15 11:16:27
  • Matplotlib控制坐标轴刻度间距与标签实例代码

    2022-01-26 03:47:39
  • Python MySQL 日期时间格式化作为参数的操作

    2024-01-12 23:52:13
  • ASP正则获取图片地址

    2009-09-03 13:18:00
  • django admin后台添加导出excel功能示例代码

    2023-10-19 10:43:48
  • Vue解决ajax跨域的问题

    2024-04-30 10:19:45
  • Python字典,函数,全局变量代码解析

    2021-02-20 06:58:58
  • asp之家 网络编程 m.aspxhome.com