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)


猜你喜欢
- 在windows7下安装SQL2005时会提示不兼容,需要安装SQL2005 SP3或更高的版本,不用管它,一路安装下去,等装完在开始菜单没
- 1. resize函数说明 OpenCV提供了resize函数来改变图像的大小,函数原型如下:void resiz
- 1. logging日志的介绍在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录;飞机飞行过程中,会有个黑盒子(飞行数据记录器)记
- //********************** index.asp ************************//<
- 使用jpype调用Jar包中的实现方法安装pip install jpype1(注意要加后边这个1)使用基本流程如下:使用jpype开启jv
- 1. 带默认值的参数在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下:>> def defaultValueA
- 最近在学一些基础的算法,发现我的数学功底太差劲了,特别是大学的这一部分,概率论、线性代数、高数等等,这些大学学的我是忘得一干二净(我当时学的
- 字符串在 Python 中创建字符串对象非常容易。只要将所需的文本放入一对引号中,就完成了一个新字符串的创建(参见清单 1)。如果稍加思考的
- 场景当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,然而也push到远程仓库去了。如何回
- 一、前言写这篇文章的灵感来源于我玩游戏的时候(为了避免过不了审就不说是啥游戏了),看见一个大佬在游戏里面建造了“还原方阵
- 在Python中,经常会去读csv文件,如下import pandas as pdimport numpy as npdf = pd.rea
- 数字范围:922337203685477~-922337203685477函数代码如下: <%Public Fun
- 一、前言不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一
- pytorch中如何只让指定变量向后传播梯度?(或者说如何让指定变量不参与后向传播?)有以下公式,假如要让L对xvar求导:(1)中,L对x
- 本文实例为大家分享了js文字列表无缝滚动的具体代码,供大家参考,具体内容如下HTML代码:<div id="rule&quo
- 开发环境解释器版本: python 3.8代码编辑器: pycharm 2021.2第三方模块requests: pip install r
- 请问,如何在ACCESS数据库和SQL SERVER数据库中查询?
- 注:此处“重复”非完全重复,意为某字段数据重复HZT表结构IDintTitlenvarchar(50)AddDatedatetime数据一.
- 前言本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况
- 记得从ymPrompt2.0的时候自己就遇到过在IE下有时会莫名其妙的提示“无法打开Internet站点 已终止操作”,这样的一个错误很让人