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)
猜你喜欢
- 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 8 - Input Filtering Part
- 一共4个页面:form.asp; chk.asp; num.asp; count.asp得到一个随即数字。加密
- 类的定义 类定义有三种基本方法,1、创建并能返回特定类型的对象的函数(工厂函数),例如:function Co(){ var o = new
- 对于网页制作者来说,最烦琐的事情可能就是给页面中的图片或文字加链接了。假如页面内容很多的话,那么所做的
- Oracle :NvlNVL函数:NVL函数是将NULL值的字段转换成默认字段输出。NVL(expr1,expr2)expr1,需要转换的字
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 19 - TooltipsMootools 1.2
- 经常看到说正则的文章,但说的只是方法,却很少有说以下几个基本概念: 1.贪婪:+,*,?,{m,n}等默认是贪婪匹配,即尽可能多匹配,也叫最
- dim sql_injdata,SQL_inj,SQL_Get,SQL_Data,Sql_PostSQL_injdata = "&
- 七夕节简介每年农历七月初七这一天是我国汉族的传统节日七夕节。因为此日活动的主要参与者是少女,而节日活动的内容又是以乞巧为主,故而人们称这天为
- 最近一直在“深山老林”中修炼“支付宝新版收银台”,经历了白板设计,视觉设计,前端开发,前后端联调各个阶段。点点滴滴……重点谈谈对交互设计的感
- 经常到这来抄抄改改代码,也贡献一个代码,主要是讨论研究用,没有封装可以进一步改进<!DOCTYPE html PUBLIC "
- 通配符:通配符描述示例%包含零个或更多字符的任意字符串。WHERE title LIKE '%computer%' 将查找处
- 在这篇文章中,我将努力揭开Mobile Web开发的神秘面纱,换句话说,也就是为了移动设备上的用户体验可以被接受,代码得怎么设计。我将阐述“
- 导语:目前点评“2008年10佳改版网站”也许为时尚早,但2008年毕竟已经过去了9个多月,周四又同时有Twitter和FriendFeed
- 以住做B/S的系统都是以IE浏览器为主,基本上忽略其他的浏览器,这次决定来个大兼容,但在实现背景渐变上就是个 * 烦。本想用图片来实现的,但要
- 如何制作一个从Access数据库中读取记录的下拉菜单?看看这个例子:<% SQL = "SEL
- 1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。代码:div{ b
- 一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->
- 好多次在不同场合,都听到有同行提到“做产品比做设计更有前途”,或者“别做设计了,做产品吧”类似的观点。我不认为它们之间有什么可比性,因为这么