A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张绍成 黑马帝   /  2011-12-23 21:26  /  2596 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 tianshan20081 于 2011-12-25 15:29 编辑
  1. String sql = "select top ? * from article ";
  2.                 try {
  3.                         ps = conn.prepareCall(sql);
  4.                         ps.setInt(1,5);
  5.                         rs = ps.executeQuery();
复制代码
  1. com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。
  2.         at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
  3.         at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
  4.         at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
  5.         at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
  6.         at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
  7.         at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
  8.         at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
  9.         at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
  10.         at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)
  11.         at com.zsc.csdn.Test.main(Test.java:18)

复制代码

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

8 个回复

倒序浏览
李楠 黑马帝 2011-12-23 22:12:30
沙发
TOP 子句用于规定要返回的记录的数目。
但是不是每个数据库都有TOP,sql是可以用的。
TOP后面跟个数表示显示几个
或者 20 percent(数字可以变)表示百分比。
不知道你的sql语句是想实现什么?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
select top ? * from article
貌似?后得加 *
回复 使用道具 举报
String sql = "select top ? from article ";
不知道你想要的是不是要返回article中的前五条数据、如果是返回前五条数据的话、那么你的?后面应该跟上你要查询的列名。比如:String sql = "select top ? title,author from article "; 或者是*,至少要指定查询的数据。
如果是想要查询的是从第几条到第几条的分页查询的话、那就要用limit了。
希望我的回答对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
李楠 发表于 2011-12-23 22:12
TOP 子句用于规定要返回的记录的数目。
但是不是每个数据库都有TOP,sql是可以用的。
TOP后面跟个数表示显 ...

谢谢你的回答   
昨天着急 SQL 语句写错了  
应该是
  1. String sql = "select top ? * from article ";
复制代码
但是 报的错 和上次的一样。
回复 使用道具 举报
杨丹丹 发表于 2011-12-24 04:35
select top ? * from article
貌似?后得加 *

谢谢你的回答   
昨天着急 SQL 语句写错了  
应该是
  1. String sql = "select top ? * from article ";
复制代码
但是 报的错 和上次的一样。
回复 使用道具 举报
张绍成 黑马帝 2011-12-24 09:50:16
7#
张乐乐 发表于 2011-12-24 06:57
String sql = "select top ? from article ";
不知道你想要的是不是要返回article中的前五条数据、如果是返 ...

谢谢你的回答   
昨天着急 SQL 语句写错了  
应该是
  1. String sql = "select top ? * from article ";
复制代码
但是 报的错 和上次的一样。

忘了说明 一下  我的数据库是   sqlserver  可以使用  limit  ?
回复 使用道具 举报
貌似语句格式错了,我没这的写过,应该这的写。

String sql="select * from article where top=?"
回复 使用道具 举报
blackbansy 黑马帝 2011-12-25 01:53:09
9#
是select top 6 from article  要有确切的条数,不能用问号。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马