求求求求求!查询语句的返回结果...火烧屁股急死了...

oixixio 2008-07-10 11:06:43
select top 1 * from table order by name Asc

这句话的意思是返回table下name列的最后一条记录对吧?

若table中name列为:
111
114
112
110
113

我需要的是name列的最后一项113的数字,可实际返回是110,高手帮忙给改改如何?
...全文
183 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 oixixio 的回复:]
引用 11 楼 pt1314917 的回复:
SQL code--那就:SelectName,字段2FromTableWhereID=(SelectMax(ID)FromTableWHERE字段2='b')


但这个字段2取自另一个表值,应该如何写入?
[/Quote]

另外一个表结构是怎么样的呢?两表有没有对应关系?
你还是把这两个表结构和数据贴全吧。这么简单一个问题,回了那么多贴。都没有得到正确答案。楼主不急,大伙都急了。。
UniqueWei 2008-07-10
  • 打赏
  • 举报
回复
SQL Server的数据存储就没有顺序,Top n对于没有主健的或者没有明确可排序字段的表完全没有意义。
应该加主键。最方便的是流水号的那种。
oixixio 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pt1314917 的回复:]
SQL code--那就:SelectName,字段2FromTableWhereID=(SelectMax(ID)FromTableWHERE字段2='b')
[/Quote]

但这个字段2取自另一个表值,应该如何写入?
SQLnewlearner 2008-07-10
  • 打赏
  • 举报
回复
这个问题有意思。慢慢研究
pt1314917 2008-07-10
  • 打赏
  • 举报
回复

--那就:
Select Name,字段2 From Table Where ID=(Select Max(ID) From Table WHERE 字段2='b')

oixixio 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Edwingu 的回复:]
因为你 order by name Asc 按字段name顺排序
所以排序后是:
110
111
112
113
114
然后你取top 1,那么结果就是 110了
数据表中是否还有ID字段等?
如果有ID号是流水号.可以是:
SQL codeSelectNameFromTableWhereID=(SelectMax(ID)FromTable)SelectTop1NameFromTableOrderByIDDesc
如果数据量大,不建议把全部数据取出再拿 top 1.

[/Quote]


厉害,按您说的方法问题解决了,取得了最后一项的值,谢谢!

追加问个问题...

如果我加个条件呢...我加个型号条件,一样是查这行的记录,但要求等于前面过来的变量...

举个例...
110 a
111 b
112 a
113 b
114 a

我要等于b的最行一个列记录...

也就是113 b,帮忙再给看看...


这是按您讲的更改后的我的页面代码,帮我看看有没有错哟,呵呵!
<%
dim conn,sql,rs
set rs = server.createobject("adodb.recordset")
set conn = server.createObject("ADODB.Connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("/database/data.mdb")
exec = "Select itworkitem From cont Where it=(Select Max(itid) From cont)"
exec = "Select Top 1 itworkitem From cont Order By itid Desc"
rs.open exec,conn,1,1
%>
<%=rs("itworkitem")%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
-狙击手- 2008-07-10
  • 打赏
  • 举报
回复
create table ta(vname varchar(20))
insert ta select
'111' union all select
'114' union all select
'112' union all select
'110' union all select
'113'
go


declare tb cursor scroll local
for
select * from ta

open tb
fetch first from tb -- 第1条
/*
vname
--------------------
111

(所影响的行数为 1 行)
*/

fetch ABSOLUTE 2 from tb -- 第2条
/*vname
--------------------
114

(所影响的行数为 1 行)
*/

fetch last from tb -- last
/*
vname
--------------------
113

(所影响的行数为 1 行)
*/
deallocate tb

drop table ta
Edwingu 2008-07-10
  • 打赏
  • 举报
回复
因为你 order by name Asc 按字段name顺排序
所以排序后是:
110
111
112
113
114
然后你取top 1,那么结果就是 110了
数据表中是否还有ID字段等?
如果有ID号是流水号.可以是:

Select Name From Table Where ID=(Select Max(ID) From Table)
Select Top 1 Name From Table Order By ID Desc

如果数据量大,不建议把全部数据取出再拿 top 1.
mli0080 2008-07-10
  • 打赏
  • 举报
回复
不好意思,你那表里面还比113大的数据,你可以使用ID值之类的东西来查询最后增加进来的记录,也可以使用时间顺序来排序吧
areswang 2008-07-10
  • 打赏
  • 举报
回复
ACS升序,DESC降序
viptiger 2008-07-10
  • 打赏
  • 举报
回复
declare @tmp table([id] int identity(1,1),[name] varchar(10))

insert @tmp
select [name]
from table

select top 1 *
from @tmp
order by name Desc
pt1314917 2008-07-10
  • 打赏
  • 举报
回复

--你这个并不是按某个字段排序,而是取最后一条。
--可以借助临时表,如下:
select id=identity(int,1,1),* into # from [table]
select top 1 * from # order by id desc

areswang 2008-07-10
  • 打赏
  • 举报
回复
select top 1 * from table order by name DESC
mli0080 2008-07-10
  • 打赏
  • 举报
回复
你在查询结果后面按倒序来排序就得了
liangCK 2008-07-10
  • 打赏
  • 举报
回复
加个时间列.或自增列.
oixixio 2008-07-10
  • 打赏
  • 举报
回复
基础太差,太不好弄了...

继续求解...


exec = "Select itworkitem From cont Where itid in(Select Max(itid) From cont WHERE itname ='b'"

都写成这样了,还是输入一样的结果...

只想要一个结果...

对过ca表格中的caname查询调用cont表格中的itname等于caname的行的itworkname值...
zhiguo2008 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 SQLnewlearner 的回复:]
这个问题有意思。慢慢研究
[/Quote]....
oixixio 2008-07-10
  • 打赏
  • 举报
回复
我的QQ是9130606...
oixixio 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 pt1314917 的回复:]
三个表之间没有对应关系么?
[/Quote]

没有做关系,楼上的高手,能否给个QQ,我把整个网站传给你,帮我看看罗...
pt1314917 2008-07-10
  • 打赏
  • 举报
回复
三个表之间没有对应关系么?
加载更多回复(3)

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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