title: MS SQL Exception: Incorrect syntax near '@P0'
body: <p>I'm querying a DB using MS SQL and for some reason I get the following error: <code>com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'</code> even though this 'P0' isn't anywhere in my syntax...</p>
  
  <p>I've read that someone has had a same issue but they were using a stored proc, something which I am not using so I don't see how his solution will work for me. (His solution being asomething about adding braces {} around the procedure call.</p>
  
  <p>Anyways, below I have pasted the relevant code. Really hope someone can help me with this, getting quite frustrated.</p>
  
  <pre><code>PreparedStatement stmt = null;
  Connection conn = null;    
  
  String sqlQuery = "SELECT TOP ? \n"+
                                "z.bankAccountNo, \n"+
                                "z.statementNo, \n"+
                                "z.transactionDate, \n"+
                                "z.description, \n"+
                                "z.amount, \n"+
                                "z.guid \n"+
                                "FROM \n"+
                                "( \n"+
                                "select  \n"+
                                "ROW_NUMBER() OVER (ORDER BY x.transactionDate, x.statementNo) AS RowNumber, \n"+
                                "x.transactionDate, \n"+
                                "x.statementNo, \n"+
                                "x.description, \n"+
                                "x.amount, \n"+
                                "x.bankAccountNo, \n"+
                                "x.guid \n"+
                                "FROM \n"+
                                "( \n"+
                                "SELECT  \n"+
                                "a.bankAccountNo,  \n"+
                                "a.statementNo,  \n"+
                                "a.transactionDate, \n"+
                                "a.description,  \n"+
                                "a.amount,  \n"+
                                "a.guid  \n"+
                                "FROM BankTransactions as a  \n"+
                                "LEFT OUTER JOIN BankTransactionCategories as b  \n"+
                                "ON a.category = b.categoryCode  \n"+
                                "WHERE b.categoryCode is null \n"+
                                ") as x \n"+
                                ") as z \n"+
                                "WHERE (z.RowNumber &gt;= ?)";
  
  stmt = conn.prepareStatement(sqlQuery);
  stmt.setInt(1, RowCountToDisplay);
  stmt.setInt(2, StartIndex);
  ResultSet rs = null;
  try{
      rs = stmt.executeQuery();
  } catch (Exception Error){
      System.out.println("Error: "+Error);
  }
  </code></pre>
  
  <p>Thanks in advance!</p>