CREATE PROCEDURE dbo.procTopicListByBoardIdSelect
@boardId INT,
@rowBegin INT
AS
BEGIN
SELECT TOP 20 *
FROM dbo.TBL_TOPIC
WHERe boardId=@boardId AND topicId NOT IN ( SELECt TOP @rowBegin topicId
FROM dbo.TBL_TOPIC
WHERe boardId=@boardId
ORDER BY publishTime DESC)
ORDER BY publishTime DESC
END
GO
TOP @rowBegin 。。。。会报错,怎么解决?根据@rowBegin传过来的参数查询top数据。
那怎么在java里调用?
sql存储过程里top后面可以跟参数吗?
答案:3 悬赏:0
解决时间 2021-04-28 23:01
- 提问者网友:夜微涼
- 2021-04-28 00:51
最佳答案
- 二级知识专家网友:荒唐后生
- 2021-04-28 01:22
可以,要用括号括起来
TOP (@rowBegin)
TOP (@rowBegin)
全部回答
- 1楼网友:温柔刺客
- 2021-04-28 03:26
直接跟参数的形式,从 SQL 2005 才开始支持。 SQL 2000 是不支持的。
如果一定要使用的话,只能用 EXEC(@SQL)的方式执行
- 2楼网友:爱情是怎么炼成的
- 2021-04-28 02:31
sql2005这种情况一般采取动态拼接语句的方式来实现,,,
declare @str varchar(1000),@tp1 varchar(10)
set @tp1=2
set @str = 'select top '+ @tp1 +' * from 表'
exec(@str)试下,,,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息