首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按复数字符串列作为编号的SQL顺序

按复数字符串列作为编号的SQL顺序
EN

Stack Overflow用户
提问于 2016-10-20 14:18:19
回答 1查看 89关注 0票数 0

我有一张这样的桌子:

代码语言:javascript
运行
复制
| ID | Name | Code  |
---------------------
| 1  | test | 11-2  |
| 2  | test | 11/1  |
| 3  | test | 1     |
| 4  | test | 10x   |
| 5  | test | 11-11 |
| 6  | test | *     |
| 7  | test | 2     |
| 8  | test | m10   |
| 9  | test | 11-*  |
| 10 | test | 11    |
| 11 | test | 10    |

代码列类型为NVARCHAR。我想让记录按代码排序,以便它们按如下方式排序:

代码语言:javascript
运行
复制
*
1
2
10
10x
11
11-*
11/1
11-2
11-11
m10

但是简单的'order‘查询返回以下内容:

代码语言:javascript
运行
复制
*
1
10
10x
11
11-*
11/1
11-11
11-2
2
m10
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-22 11:55:10

尝尝这个

代码语言:javascript
运行
复制
select *,ISNUMERIC(LEFT(t,1)) as num,REPLICATE('0',10-len(t))+RTRIM(t) as ord
from(
select '11-2 ' as t union all
select '11/1 ' union all
select '1    ' union all
select '10x  ' union all
select '11-11' union all
select '*    ' union all
select '2    ' union all
select 'm10  ' union all
select '11-* ' union all
select '11   ' union all
select '10   ' 
)as p

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

https://stackoverflow.com/questions/40157042

复制
相关文章

相似问题

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