读书人

sql语句报错 大家看看有关问题出在哪里

发布时间: 2011-12-23 23:32:01 作者: rapoo

sql语句报错 大家看看问题出在哪里
SELECT TOP @pageSetup FROM jobs WHERE (job_id NOT IN (SELECT TOP @toPage job_id FROM jobs ORDER BY job_id)) ORDER BY job_id


服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '@pageSetup ' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '@toPage ' 附近有语法错误。



[解决办法]
@pageSetup,@toPage是什么东东!
好象应该是数字吧!
SELECT TOP @pageSetup * FROM jobs WHERE (job_id NOT IN (SELECT TOP @toPage job_id FROM jobs ORDER BY job_id)) ORDER BY job_id
加上一个*看看!

[解决办法]
你的ORDER BY job_id 后面的是升序还是降序要不要写呢?
比如ORDER BY job_id desc
[解决办法]
select 后面没有写查询的列名嘛.至少也得加个*呀
[解决办法]
你先把那俩变量换成数字,看错不错
[解决办法]
top后面加上一个整数
[解决办法]
SELECT TOP @pageSetup * FROM jobs WHERE job_id NOT IN (SELECT TOP @toPage job_id FROM jobs ORDER BY job_id) ORDER BY job_id

这样试试

[解决办法]
这样是不行的 需要转成字符处理.
begin
declare @sql varchar(2000)

select @sql = "SELECT TOP " + @pageSetup + " * FROM jobs WHERE (job_id NOT IN (SELECT TOP " + @toPage + " job_id FROM jobs ORDER BY job_id)) ORDER BY job_id "

exec (@sql)
end
[解决办法]
TOP要指定前几位,如前10
SELECT TOP(10) @pageSetup FROM jobs WHERE (job_id NOT IN (SELECT TOP(10) @toPage job_id FROM jobs ORDER BY job_id)) ORDER BY job_id

[解决办法]
select top 10 * form biao
[解决办法]
要写成字符串的,至于注入嘛,在传入存储之前做检测替换就行了
[解决办法]
应该是这样:
SELECT TOP @page Setup FROM jobs WHERE (job_id NOT IN (SELECT TOP @toPage job_id FROM jobs ORDER BY job_id)) ORDER BY job_id
@page和Setup之间少了个空格

[解决办法]
top 后不能跟变量
[解决办法]
应该这样写
declare @sql varchar(255)
set @sql = 'SELECT TOP ' + @pageSetup + ' FROM jobs WHERE (job_id NOT IN (SELECT TOP ' + @toPage + ' job_id FROM jobs ORDER BY job_id)) ORDER BY job_id '

exec(@sql)
[解决办法]
同意最后一个的意见,因为top要指定筛选的内容
[解决办法]
select top * from Table
[解决办法]
up
[解决办法]
晕,变量不能写在SQL语句里,
要不认不出来,

用+ " "
------解决方案--------------------


Top 后面不能直接用参数,
你可以参照 eagle008(eagle008) 写的
[解决办法]
赞同!!!!!!!
[解决办法]
o

读书人网 >C#

热点推荐