怎么查询前N条记录

wan766405890 2009-12-15 09:35:47
怎么查询前N条记录,这个N可以自定义!比如说我可以在新闻后台自定义前台显示的热点新闻个数!
...全文
218 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuangwan 2009-12-18
  • 打赏
  • 举报
回复
declare @record int
set @record =3
declare @sql varchar(8000)
set @sql='select top '+convert(varchar(2),@record) +' * from 表名'
exec (@sql)
jinsenhome 2009-12-18
  • 打赏
  • 举报
回复
小F正解:
补充:
无论2000 或2005 均可使用 set rowcount n选项。 不过一定注意查询结束 恢复: set rowcount 0
古越出东方 2009-12-18
  • 打赏
  • 举报
回复
语句好像不用这么复杂?
ggsysy 2009-12-17
  • 打赏
  • 举报
回复
set rowcount N  --取N条
seelct * from 表名
set rowcount 0
幸运的意外 2009-12-16
  • 打赏
  • 举报
回复
select top N from tb
kevin_long 2009-12-16
  • 打赏
  • 举报
回复
DECLARE @n INT
SET @n = 100
SET ROWCOUNT @n
SELECT * FROM Table
hchjjun 2009-12-15
  • 打赏
  • 举报
回复
用动态sql可以解决的
水族杰纶 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 nianran520 的回复:]
SQL codeDECLARE@TOPVARCHAR(50),@TABLEVARCHAR(100)SELECT@TOP='4'--前4条记录,@TABLE='tabeName'EXEC('SELECT TOP'+ltrim(@TOP)+' * FROM'+@TABLE)
[/Quote]
語法也通不過
去掉ltrim()
nianran520 2009-12-15
  • 打赏
  • 举报
回复
DECLARE @TOP VARCHAR(50),
@TABLE VARCHAR(100)
SELECT @TOP='4' --前4条记录
,@TABLE='tabeName'

EXEC('SELECT TOP '+ltrim(@TOP)+' * FROM '+@TABLE)
tkscascor 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhaoyh0530 的回复:]
SQL codeDECLARE@TOPVARCHAR(50),@TABLEVARCHAR(100)SELECT@TOP='4'--前4条记录,@TABLE='tabeName'EXEC('SELECT TOP'+@TOP+' * FROM'+@TABLE)
[/Quote]
你不是来学习的么. 你答啥!
zhaoyh0530 2009-12-15
  • 打赏
  • 举报
回复
DECLARE @TOP VARCHAR(50),
@TABLE VARCHAR(100)
SELECT @TOP='4' --前4条记录
,@TABLE='tabeName'

EXEC('SELECT TOP '+@TOP+' * FROM '+@TABLE)
wan766405890 2009-12-15
  • 打赏
  • 举报
回复
谢了
zhaoyh0530 2009-12-15
  • 打赏
  • 举报
回复
来学习
wan766405890 2009-12-15
  • 打赏
  • 举报
回复
帮帮我!
简若的学习窝 2009-12-15
  • 打赏
  • 举报
回复
拼接Sql语句:

1、如果直接在 Sql Server 中写,可以这样,例如:
DECLARE @t NVARCHAR
SET @t = '10'

DECLARE @sqlstr NVARCHAR(100)
SET @sqlstr = 'SELECT TOP ' + @t + ' * FROM Emp e'

EXECute(@sqlstr)


2、如果在程序中,可以直接用变量拼接sql字符串,原理同上啊
wan766405890 2009-12-15
  • 打赏
  • 举报
回复
怎么都不对呢?试了又试!这个问题应该蛮简单!
水族杰纶 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wufeng4552 的回复:]
引用 6 楼 herowang 的回复:
exec ('select top '+cast(num as varchar(10)+' * from tb')

老是這樣寫不對阿
SQL codeexec ('select top'+num+' * from tb')
[/Quote]
老是--老師
水族杰纶 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fredrickhu 的回复:]
恩  要把字符型转换成int
[/Quote]
不需要~
水族杰纶 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 herowang 的回复:]
exec ('select top '+cast(num as varchar(10)+' * from tb')
[/Quote]
老是這樣寫不對阿
exec ('select top '+num +' * from tb')
--小F-- 2009-12-15
  • 打赏
  • 举报
回复
恩 要把字符型转换成int
加载更多回复(8)

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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