order by 排序

SST_X 2019-03-30 01:06:15


怎么equipment和 ID排序 asc,ID空的放最后?谢谢大家
...全文
804 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhonsonzhang 2019-04-18
  • 打赏
  • 举报
回复
这代码要用C#来写,至少多10行,还要多打{}和;。哪有VB这么简洁扼要。其实我这代码都还可以进一步减少。
SST_X 2019-04-18
  • 打赏
  • 举报
回复
@jhonsonzhang ,非常感谢,我周末试一下。然后回复你。谢谢!
jhonsonzhang 2019-04-18
  • 打赏
  • 举报
回复
运行结果:
jhonsonzhang 2019-04-18
  • 打赏
  • 举报
回复
测试通过
Imports System.Data
Imports System.Linq
Module Module1
Sub Main()
Dim dt1 As New DataTable
dt1.Columns.Add("id", Type.GetType("System.String")).AllowDBNull = True
dt1.Columns.Add("eq", Type.GetType("System.String", False))
Dim j = 8
For i = 1 To 4
dt1.Rows.Add(New String() {i, "eq" & j})
j -= 1
Next
For i = 1 To 4
dt1.Rows.Add(New String() {Nothing, "eq" & j})
j -= 1
Next
Console.WriteLine("...读取原始:")
For Each dr In dt1.Rows
Console.WriteLine("id:" & dr(0).ToString & "-eq:" & dr(1).ToString)
Next
Console.WriteLine("...读取排序:")
Dim qry1 = From n In dt1
Order By n!eq
Dim qryEQ = From n In qry1
Where Not IsDBNull(n!id)

Dim qryNullId = From n In qry1
Where IsDBNull(n!id)
'这儿可以根据需要再排序
Dim qryRlt = qryEQ.Union(qryNullId)

'n.Field(Of String)("eq") Ascending
For Each dr In qryRlt
Console.WriteLine("id:" & dr(0).ToString & "-eq:" & dr(1).ToString)
Next
Console.Read()
End Sub

End Module
ManBOyyy 2019-04-15
  • 打赏
  • 举报
回复
模擬一列就可以了,空的就9999999
SST_X 2019-04-15
  • 打赏
  • 举报
回复
mdb数据库似乎不能用 case when。算了。还是想其它办法吧。谢谢大家!
FainSheeg 2019-04-15
  • 打赏
  • 举报
回复
这么多个回答,有给思路的,有直接给代码的。你非得让别人在你的代码上面改好才行,你还是花钱请人给你做这个项目吧。
SST_X 2019-04-12
  • 打赏
  • 举报
回复
谢谢大家!敬礼 大家能帮忙看看怎么写吗?不仅这个功能。我邮箱:peterxuv@163.com 能帮个忙吗?我发个代码帮改改。谢谢。 现在很混乱
SST_X 2019-04-11
  • 打赏
  • 举报
回复
谢谢大家。现在我这个功能搞不定了,想找个人帮忙,vb.net代码。就是时间排序。我是半道学的。谁能帮忙吗?谢谢大家。
  • 打赏
  • 举报
回复
一种方式,你可以自定义一种(计算出来的)字段,符合你的排序要求,例如空值对应于按字符顺序排在最后的那一种字符串。 另一种方式是常用的,就是先查询并排序目标字段不为空的记录,然后查询并排序为空的记录,将二者 union all 联合。
  • 打赏
  • 举报
回复
引用 15 楼 SST_X 的回复:
谢谢大家。现在我这个功能搞不定了,想找个人帮忙,vb.net代码。就是时间排序。我是半道学的。谁能帮忙吗?谢谢大家。
14楼不是给你解决了吗
FainSheeg 2019-04-07
  • 打赏
  • 举报
回复
order by equipment,(case ID when null then 9999 else ID end)

试试吧。
吴家声 2019-04-06
  • 打赏
  • 举报
回复
有个命令是id=null的时候id=0
  • 打赏
  • 举报
回复
提供一下数据以便作为测试用;
不要数据库,保存为XML格式,把文字发来。
  • 打赏
  • 举报
回复
模拟一个排序,你看是这意思?
luj_1768 2019-04-03
  • 打赏
  • 举报
回复
只针对equipment 排序,自动会按你说的情况排序。另外,id 自动是主键,系统会自动生成相关数据,不许也不会是空值,你给的数据样本是不对的。
SST_X 2019-04-03
  • 打赏
  • 举报
回复
楼上,谢谢! ID 先不把它看做主键,就是一个普通列。是mdb数据库。目前没找到可行的办法,准备放弃这个方式了。
  • 打赏
  • 举报
回复
另外:SQL语句两个字段同时order by 排序, http://www.baidu.com/s?wd=order+by+%E5%A4%9A%E4%B8%AA%E5%AD%97%E6%AE%B5&ie=UTF-8&oe=UTF-8&abar=2&tn=54066025_adr&ch=33 看是否有用,一般我也只是用一个字段排序.
  • 打赏
  • 举报
回复
那确实很麻烦的要转来转去,因为前回复了一个数组转数据表的,特发奇想! GROUP BY 和 ORDER BY 了解一下.
SST_X 2019-04-02
  • 打赏
  • 举报
回复
谢谢智者,我想按升序ASC来排序,不按desc排序,另外这个是用的VB.NET + access数据库,能这样实现吗?
加载更多回复(5)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧