首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对包含数字的文本进行排序?

对包含数字的文本进行排序?
EN

Stack Overflow用户
提问于 2014-11-29 20:55:54
回答 2查看 81关注 0票数 0

我在数据库表中有字段名为"number",表中包含的数据如下

代码语言:javascript
运行
复制
id number
1   1-1
2   2-4
3   10-1
4   7-1

当我在查询中将其排序为"order by number“时,它会给出这样的结果,

代码语言:javascript
运行
复制
id number
3   10-1
1   1-1
2   2-4
4   7-1

我想要这样,

代码语言:javascript
运行
复制
id number
1   1-1
2   2-4
4   7-1
3   10-1

我正在使用vb.net,我的代码是

代码语言:javascript
运行
复制
Dim da As New OleDb.OleDbDataAdapter("SELECT number FROM TABLE_NAME order by number", cnn)
                Dim dt As New DataTable
                da.Fill(dt)
                Me.dgvData.DataSource = dt

其中dgvData是datagridview。

EN

回答 2

Stack Overflow用户

发布于 2014-11-29 21:11:42

您可以将字符串的左侧部分转换为数字:

代码语言:javascript
运行
复制
order by cast(left(number, charindex('-', number) - 1) as int)

或者,在许多情况下,很可能包括您的情况下,将长度考虑在内:

代码语言:javascript
运行
复制
order by len(number), number
票数 1
EN

Stack Overflow用户

发布于 2014-11-29 21:09:41

简单的解决方案:如果连字符后面的数字总是恰好是1个字符,你可以这样做。

代码语言:javascript
运行
复制
ORDER BY RIGHT('0000'+number, 6)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27202513

复制
相关文章

相似问题

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