对同一字段中即有数字又有字母的情况进行排序(求SQL语句)

数据库某字段数据(22,11,1,2,2a,10,12,15)我希望的排序结果是,从左边先取数字排序,然后再以剩下的字母排序,我想要的结果是:1,2,2a,10,11,1... 数据库某字段数据(22,11,1,2,2a,10,12,15)我希望的排序结果是,从左边先取数字排序,然后再以剩下的字母排序,我想要的结果是:
1,2,2a,10,11,12,15,22;我想要SQL语句代码,谢谢
个人的思路是,先对字段末尾字符时行判断,如果是字母,则将字母去掉后转为int型,若无字母,则直接转换为int型,然后对转换后的值进行排序。只是本人对SQL编程不懂,有木有大侠帮个忙。给高分啦。
展开
 我来答
jkhebing
2012-07-10 · 超过18用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:37.6万
展开全部
--建表
create table #
(
t nvarchar(20)
)
--插入数据
insert into #(t)
select '1'
union all select '2'
union all select '2a'
union all select '10'
union all select '11'
union all select '12'
union all select '15'
union all select '22'

--排序SQL

select t from #
order by case when LEN(t)=1 then t when t like '%[a-z]' then LEFT(t,1) else 'zz' end,t
--删除环境
drop table #
micro0369
推荐于2018-04-30 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4045万
展开全部
需要一个判断字符是否为数字的函数,你可以写一个,

假设名称为 bool f_isdigit()

order by case when f_isdigit(col) then convert(int,col) else 999999999 end asc, col asc
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hushuibing18
2012-07-10
知道答主
回答量:1
采纳率:0%
帮助的人:1607
展开全部
1,2,2a,10,11,12,15,22
追问
晕,我要排序的SQL语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4b9174
2015-11-04 · TA获得超过1215个赞
知道小有建树答主
回答量:742
采纳率:57%
帮助的人:171万
展开全部
order by 列名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式