0
n番目に高い給与についてたくさんの質問がありますが、なぜ私の構文が間違っているのか分かりません。コンパイラはN-1);
の部分にエラーがあることを示していますが、なぜそれが間違っているのかわかりません。ありがとう!なぜN番目の最高給与SQLクエリ構文が間違っていますか?
n番目に高い給与についてたくさんの質問がありますが、なぜ私の構文が間違っているのか分かりません。コンパイラはN-1);
の部分にエラーがあることを示していますが、なぜそれが間違っているのかわかりません。ありがとう!なぜN番目の最高給与SQLクエリ構文が間違っていますか?
あなたのデータに応じて、あなたが書いたようなクエリは期待した結果を返さないかもしれないという事実を無視します。その代わり、私は、構文エラーの修正に焦点を当てます:
;
)区切り文字を再定義する必要があります。LIMIT
とOFFSET
を分離するコンマがあるべきではありません(たぶん、あなたはすでにそれをやっているが、あなたがそれを示していないことから、私は場合にはそれを言及は)OFFSET
パラメータ。あなたが持っている方法で計算された表現が好きではないようです。その場合、SQLステートメントで使用する前に、必要な値を計算するだけで済みます。上記を適用、ここでは次のようになります。私は通常、代わりに `LIMITオフセット、count`を使用して、`・オフセットフォームを使用していない
delimiter //
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N - 1;
RETURN (
# Write your MySQL query statement below.
SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET N
);
END
//
。しかし、あなたがそれを使うなら、あなたは '、'を使わないと思います。また、MySQLは、変数を使用して制限/オフセットを使用できる場所について、細心の注意を払うことができます。 – Uueerdo
'LIMIT X OFFSET Y'(カンマなし)または' LIMIT X、Y'です。 – Andrew
まだ同じエラーが発生しています:( –