存储过程中用top问题

pwalai 2007-12-07 12:05:26
CREATE PROCEDURE guest_search1
@key nvarchar(50),@num int
as
select top @num * from news where ntitle like '%@key%' order by ntime desc
GO

select top 后面好像不能放参数

在论坛上找了下可以
exec(' select top '@num +' * from news') 实现

但是后面还有@key 参数 怎么连接呢

...全文
79 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csjtxy 2008-06-13
  • 打赏
  • 举报
回复
请问是用SQL Server 2000吗?那就上面的高手已经给出了。
如果是SQL Server 2005的话,那就是这样:

select top (@num) * from news where fid=@kid and ntitle like '%@key%' order by ntime desc
pwalai 2007-12-07
  • 打赏
  • 举报
回复
exec   ('select   top   '   +   @num   +   '   *   from   news   where   fid='+@kid+'   ntitle   like   ''%'+@key+'%''   order   by   ntime   desc')
pwalai 2007-12-07
  • 打赏
  • 举报
回复
是不是
exec ('select top ' + @num + ' * from news where fid='+@kid+' ntitle like ''%'+@key+'%'' order by ntime desc')
pwalai 2007-12-07
  • 打赏
  • 举报
回复
如果是
select top @num * from news where fid=@kid and ntitle like '%@key%' order by ntime desc
又怎么写
谢谢了
中国风 2007-12-07
  • 打赏
  • 举报
回复
exec ('select top ' + @num + ' * from news where ntitle like ''%'+@key+'%'' order by ntime desc')
中国风 2007-12-07
  • 打赏
  • 举报
回复
exec ('select top ' + @num + ' * from news where ntitle like '''+%@key%+''' order by ntime desc')
pwalai 2007-12-07
  • 打赏
  • 举报
回复
请问2楼这么写的@key是当作参数吗?
Limpire 2007-12-07
  • 打赏
  • 举报
回复
CREATE PROCEDURE guest_search1
@key nvarchar(50),@num int
as
exec ('select top ' + @num + ' * from news where ntitle like ''%@key%'' order by ntime desc')
GO

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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