我在数据库表中有字段名为"number",表中包含的数据如下
id number
1 1-1
2 2-4
3 10-1
4 7-1
当我在查询中将其排序为"order by number“时,它会给出这样的结果,
id number
3 10-1
1 1-1
2 2-4
4 7-1
我想要这样,
id number
1 1-1
2 2-4
4 7-1
3 10-1
我正在使用vb.net,我的代码是
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。
发布于 2014-11-29 21:11:42
您可以将字符串的左侧部分转换为数字:
order by cast(left(number, charindex('-', number) - 1) as int)
或者,在许多情况下,很可能包括您的情况下,将长度考虑在内:
order by len(number), number
发布于 2014-11-29 21:09:41
简单的解决方案:如果连字符后面的数字总是恰好是1个字符,你可以这样做。
ORDER BY RIGHT('0000'+number, 6)
https://stackoverflow.com/questions/27202513
复制相似问题