我的邮件界面排序要求:收件人"未阅"的在前面, "已阅"的在后面;且要按发邮件的时间倒序排列,即最新的放到最前面.我在数据库中只能按收件人"未阅"字段排序,不能同时对两个字段排序,那是不是要写代码来实现?但时间的代码如何写呢?
程序如下:
<%
dim Rs 
set Rs= Server.CreateObject("ADODB.Recordset")
Rs.ActiveConnection="File Name=" & Server.MapPath("Ado.udl")
Rs.Source="Select * From MailReceived1 ORDER BY Read_Time DESC"
Rs.CursorType=3
Rs.LockType=1
Rs.Open%>
<table align=center>
<tr>
<td align="center">重要性</td>
<td>发件人</td>
<td>主题</td>
<td>发送时间</td>
</tr>
</table>
<%
'显示当前页数据
Response.write "<table>"
Do While (Not Rs.Eof)
    Response.write "<tr>"
    Response.write "<td>" & Rs.Fields(1).Value & "</td>"
    Response.write "<td>" & Rs.Fields(2).Value & "</td>"
    Response.write "<td>" & Rs.Fields(3).Value & "</td>"
    Response.write "<td>" & Rs.Fields(4).Value & "</td>"
    Response.write "</tr>"
    Rs.MoveNext
Loop
Reponse.write "</table>"
Rs.Close
Set Rs=Nothing
%>
(注: 数据库中Rs.Fields(0)是邮件编号字段;Rs.Fields(4)是邮件发送时间字段;Rs.Fields(5)是收件人是否阅读邮件字段)

解决方案 »

  1.   

    可以同时对两个字段排序Rs.Source="Select * From MailReceived1 ORDER BY Read_Time DESC"这句改为Rs.Source="Select * From MailReceived1 ORDER BY Read_Time DESC, Receive_Time DESC"
    其中Receive_Time是另一个字段名
      

  2.   

    回复人: trees0()这样排序没有用,我试过了
    ---------------------------------可以这样排啊,楼主应该补习一下 SQL 语句的基础。呵..Rs.Source="Select * From MailReceived1 ORDER BY Read_Time DESC, Receive_Time DESC"
      

  3.   

    呵呵,我正好写过,给你个参考!sql="select * from [msg] where name='"& session("user") & "' order by Read_Time,Receive_Time desc"这样就可以,那个Read_Time,用数字,0就是未读,1就是已读。所以他后面就不要DESC,就按这样的语句就可以了哈,呵呵!