首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sql查询中,首先按名称排序,然后从分隔字符串中排序

在sql查询中,首先按名称排序,然后从分隔字符串中排序
EN

Stack Overflow用户
提问于 2019-08-06 11:40:07
回答 1查看 135关注 0票数 1

我们设计了在1个字段中注册客户的车站分区记录。所以表行看起来像这样。

代码语言:javascript
运行
复制
create table test4 (f2 varchar(100))

insert into test4 (f2) values ('A08-0100')
insert into test4 (f2) values ('006-0100')
insert into test4 (f2) values ('008-0200')
insert into test4 (f2) values ('008-0200')
insert into test4 (f2) values ('007-0100')
insert into test4 (f2) values ('009-0100')
insert into test4 (f2) values ('009-F100')

现在,我想按桩号排序,然后按分区排序,但我希望字母首先显示在第一组中。

到目前为止,我尝试过的是

代码语言:javascript
运行
复制
select * from test4 order by left(f2, 3), right(f2, 40)

First Group(station)        2nd Group (division)
A08                  -      0100

预期输出:

代码语言:javascript
运行
复制
A08-0100
006-0100
007-0100
008-0200
008-0200
009-0100
009-F100
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-06 11:55:24

你可以检查电台是否以字母开头,并相应地对其进行排序...如下所示:

代码语言:javascript
运行
复制
case when left(f2, 1) like '[a-z]%' then 1 else 2 end

在order by子句中使用此命令,如下所示:

代码语言:javascript
运行
复制
select * from test4 order by case when left(f2, 1) like '[a-z]%' then 1 else 2 end, left(f2, 3), right(f2, 4);

请在此处查看Fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57368608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档