2000数据库的查询中top关键字后面怎么跟计算公式

如selecttop3-2+1*fromasptest可以这样写吗,如果不行该怎么写呢,因为我的这个3、和2是传进来的值,所以要这样写,可是会报错,那该怎么改呢,急急急... 如 select top 3-2+1 * from asptest可以这样写吗,如果不行该怎么写呢,因为我的这个3、和2 是传进来的值,所以要这样写,可是会报错,那该怎么改呢,急急急 展开
 我来答 举报
摆渡浮桥
2012-12-03 · TA获得超过3631个赞
知道大有可为答主
回答量:1610
采纳率:100%
帮助的人:2261万
展开全部
SQL Server 2000不支持TOP后面跟表达式,只能是常量。
如果TOP后面的值是可变的,可以使用动态SQL实现。
更多追问追答
追问
我知道,可是我不知道怎么动态实现,我语句是在.xml里面写的,用的是ibatis框架
追答
不熟ibatis,如果你能够将 3-2+1 的计算结果存入.xml的SQL语句里,就没有问题。
本回答被网友采纳
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
匿名用户
2012-12-03
展开全部
select top (3-2+1) * from asptest

尝试加一个 () 看看
我这里 SQL Server 2008 下面, 不加括号出错, 加了括号是可以的。
更多追问追答
追问
select top 3-2+1 Id from asptest 如果我这样就没错,可是把Id改成*就报错,不知道怎么办,括号的办法我试过了,没用
追答
开了个虚拟机, 装了个  SQL  2000 测试了一下, 确实, SQL 2000 没办法
select top (3-2+1) * from asptest

至于 select top 3-2+1 Id from asptest 不出错的原因。
是 SQL 解析的时候。
是 select top 3 -2+1 id from asptest;
的机制来处理的。
top 3 嘛。 是常量, 不出错的。
本回答被提问者采纳
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式