sql 字符与数字排序
有a表如下字段id1a2b3c排序后要得到idabc123也就是说字符按照字符来排序,数字按照数字来排序~忘高人们告诉下~感谢不好意思~忘了说我用的是PostgreSQL...
有a表如下字段
id
1
a
2
b
3
c
排序后要得到
id
a
b
c
1
2
3
也就是说字符按照字符来排序,数字按照数字来排序~忘高人们告诉下~感谢
不好意思~忘了说我用的是PostgreSQL 展开
id
1
a
2
b
3
c
排序后要得到
id
a
b
c
1
2
3
也就是说字符按照字符来排序,数字按照数字来排序~忘高人们告诉下~感谢
不好意思~忘了说我用的是PostgreSQL 展开
展开全部
Sql给你,分给我
转换asc码,简洁方便
1是49 a是97 z就是123 只要让数字的码都大于字母就可以了,73是可以根据情况改的,要是有大写情况,也能处理
select Id from a order by (case when isNumEric(Id)=1 then ascii(Id)+73 else ascii(Id) end)
转换asc码,简洁方便
1是49 a是97 z就是123 只要让数字的码都大于字母就可以了,73是可以根据情况改的,要是有大写情况,也能处理
select Id from a order by (case when isNumEric(Id)=1 then ascii(Id)+73 else ascii(Id) end)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照id排序的话结果应该是123abc
我想到的就是改变字符串长度
比如'1'+' '就会排到abc前面
代码如下
select case when IisnumEric(id)=1 then id+' ' else id end [id] order by id
我想到的就是改变字符串长度
比如'1'+' '就会排到abc前面
代码如下
select case when IisnumEric(id)=1 then id+' ' else id end [id] order by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--在临时表中新增一个排序字段,可实现最终排序
--以下虽然是在SQL Server中实现,但思路也可供参考
select IDENTITY(int,1,1) c1,id into #temp from t where ISNUMERIC(id)<>1 order by id;
insert #temp select ID from t where ISNUMERIC(id)=1 order by id;
select id from #temp order by c1;
--以下虽然是在SQL Server中实现,但思路也可供参考
select IDENTITY(int,1,1) c1,id into #temp from t where ISNUMERIC(id)<>1 order by id;
insert #temp select ID from t where ISNUMERIC(id)=1 order by id;
select id from #temp order by c1;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加个索引,应该会自动排序的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询