日期:2014-05-16  浏览次数:20927 次

天啊,我这是怎么了,实在看不出哪里错,,赶工中,老是遇到sql top这种问题
独立文件中的过程,,,

Function dblist(dbname,dbsql,dbtype)
Select Case dbtype
Case 1 : Set dbname = Server.CreateObject("Adodb.Recordset") : dbname.Open dbsql,Conn,1,1
case 3:
set dbname = server.createobject("Adodb.Recordset")
dbname.open dbsql, conn, 1, 3
End Select
End Function



显示页面中的使用,,,,,,,

<%
call dblist(tejia,"select top 18 * from Products where img<>'' and tejia='1' order by data desc",1)
if not tejia.eof and not tejia.bof then
while not tejia.eof

'取单张图片
bigimg1=dantu(tejia("img"))
%>
<table width="110" border="0" cellspacing="0" cellpadding="0" class="list">
  <tr>
    <td class="c_img" valign="middle"><a href="ppmore.asp?id=<%=tejia("id")%>" target="_blank"><img alt="<%=tejia("title")%>" src="<%=bigimg1(1)%>" /></a></td>
  </tr>
  <tr>
    <td class="Text"><%=tejia("title")%><br />价格:<span class="red1">¥<%=tejia("jiagelingshou")%></span></td>
  </tr>
</table>
<%
tejia.movenext
wend
end if
tejia.close
set tejia=nothing
%>



不知道是不是这条句子有问题还是什么的,
select top 18 * from Products where img<>'' and tejia='1' order by data desc
这个TOP 18 就是没起作用啊,,,所有数据都被取出来了,,本来不想要那么多的,,
怎么回事啊?大大神帮指导 是哪里错了? 是程序问题还是服务器问题

,
------解决方案--------------------
select top 18 * from Products where img<>'' and tejia='1' order by data desc
这个应该是由于data不是唯一值造成的,你应该再加一个唯一值排序,比如id
------解决方案--------------------
引用:
Quote: 引用:

select top 18 * from Products where img<>'' and tejia='1' order by data desc
这个应该是由于data不是唯一值造成的,你应该再加一个唯一值排序,比如id



排序也会造成TOP无效?  还真没想到,,,最近又忙别的事去了,回去试试看是不是排序问题,,,谢谢了,,
,
,

当然,因为你排序不是唯一的,那么他就会混乱,会把那些相同的排序一起显示出来的
------解决方案--------------------
引用:
Quote: 引用:

select top 18 * from Products where img<>'' and tejia='1' order by data desc
这个应该是由于data不是唯一值造成的,你应该再加一个唯一值排序,比如id



排序也会造成TOP无效?  还真没想到,,,最近又忙别的事去了,回去试试看是不是排序问题,,,谢谢了,,
,
,

还有如果是数字比较就不用用单引号了 tejia='1'
------解决方案--------------------
排序字值段不唯一
------解决方案--------------------
引用:
排序字值段不唯一


日期字段,有同值的了。
------解决方案--------------------
order by data desc,id  desc
------解决方案--------------------
把SQL直接执行一下看看结果,不就知道是什么原因了吗?
-----