2

行番号順に並べられたテーブルのすべてのコンテンツを選択する必要があるSQLステートメントがあります。だから私はrow_number関数を使いました。

しかし、私は毎回エラーが発生します

Exception in thread "main" java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

またはこのエラー

ORA-00936: missing expression

私の声明は次のようになります。

SELECT row_number() OVER(ORDER BY table.column1) AS row, table.* 
FROM table 
WHERE column2= ("Any String") 
ORDER BY row;

このコードで私を助けてくれることを願っています。

ありがとう

4

3 に答える 3

6

rowその結果列の名前を使用しようとしている場合、それは Oracle の予約語であるため、問題が発生します。列に別の名前を付けるか、""引用符で囲みます (引用された識別子:

SELECT row_number() OVER(ORDER BY table.column1) AS "row", table.* 
FROM table 
WHERE column2= ("Any String") 
ORDER BY "row";

(私は通常、別の名前を選ぶことを選択します)

于 2013-10-11T08:42:44.877 に答える
0

それはどのDBMSですか?かっこを削除して、次のように使用してみませんか。

SELECT row_number() OVER(ORDER BY table.column1) AS row, table.* 
FROM table 
WHERE column2 = 'Any String' 
ORDER BY row;
于 2013-10-11T08:23:58.843 に答える