2016-06-22 8 views
1

Derbyデータベースの上位10個の値のみを表示しようとしています。最初に試した最初のクエリは、Derby DBの値が正しく順序付けされていない

Select * from scores order by pscore desc limit 5 

ですが、エラーが発生しました。エラーコードはでした:

Error code -1, SQL state 42X01: Syntax error: Encountered "limit" at line 1, column 43. 

私は、その後にクエリを簡素化しようとした:順序が正しくないただし、このクエリは動作します

Select * from scores order by pscore desc 

。たとえば、上位5つの値を75,25,200,150,125,100というように並べ替えます。

上位5つの値のみを順番に表示するために使用する正しいクエリは何ですか?

+0

があなたの 'pscore'列のデータ型を確認してください。 –

+0

データ型はvarchar – Osiris93

+1

です。リストは適切にソートされています。あなたが望むデータ型ではありません。 varcharを数値にキャストする必要があります。 –

答えて

1

limithere

に関するダービーのマニュアルを参照してくださいそれはがサポートされていないように見えます。また、回避策が与えられます。use WHERE rownum <= 5FETCHをバージョン10.7以降

修正したクエリのために:

SELECT * FROM scores order by pscore desc FETCH FIRST 5 ROWS ONLY; 
+0

私はそれを試してみましたが、5行しか表示されません。 Order By節をそれに組み込む方法はありますか? – Osiris93

+0

あなたのクエリに必要な修正を加えて回答を更新しました。 – tkachuko

+1

次のエラーメッセージが表示されます。「エラーコード-1、SQLステート42X01:構文エラー:遭遇」「行3、列3」 – Osiris93

関連する問題