表名news 字段ID,TITLENAME
字段ID值为 1, 4, 6, 7, 8
现在我要求一条SQL语句得到前三行语句的第三行记录 也就是ID是6的语句.select top 1 * from news order by id desc 还有TOP 3(前三行) 如何录入 ;毕竟我遇到的问题是ID是不知道的参数;并且只取一行记录;
字段ID值为 1, 4, 6, 7, 8
现在我要求一条SQL语句得到前三行语句的第三行记录 也就是ID是6的语句.select top 1 * from news order by id desc 还有TOP 3(前三行) 如何录入 ;毕竟我遇到的问题是ID是不知道的参数;并且只取一行记录;
解决方案 »
- win2003安装sql server2000,没有成功
- sql的查詢處理
- 重装的sql2005连接进不去了
- sql修改语句求助,急急
- 当摘要为本月发生额时删除同月的摘要为本年累计发生额的记录。
- 写一个存储过程
- 产生"[Microsoft][ODBC SQL Server Driver]没有执行可选特性"错误的原因??
- ado添加记录出现问题,请帮忙解决!!!!
- 急急急:A代码奖金的总和525360,B代码奖金的总和1003250,哪个结果是对的?
- 求大神帮忙。上课没听,要交作业了。不会。求大神
- 新手求救 如何设置SQL Server才能在VS里进行连接
- 咳嗽,一样的题目,又来了。。外码约束表达式
set @n=3
select top 1 * from(select top (@n) * from news order by id) a
set @n=3print('select top 1 * from(select top '+ltrim(@n)+' * from news order by id) a')
declare @n int
set @n=3
print('select top 1 * from(select top '+ltrim(@n)+' * from news order by id) a order by id desc')
--2005
declare @n int
set @n=3
select top 1 * from(select top (@n) * from news order by id) a order by id desc
declare @id int
as
begin
select top 1 * from news where ID not in (select top (@n-1) ID from news)
end
--应用:
exec Id_proc 3
create proc Id_proc
declare @id int
as
begin
select top 1 * from news where ID not in (select top (@id-1) ID from news)
end
--应用:
exec Id_proc 3
(
SELECT Row_number()over(order by id ) as Rowid,*
FROM news
)tempTable
WHERE tempTable.Rowid=3 --直接指定第几列
set @n=3
select top 1 * from(select top (@n) * from news order by id) a order by id desc
就是一个别名。(select top 3 * from news order by id asc)这是一个表,其别名为a