2017-01-05 10 views
-2

MySQLサーバーで次のコードを使用して 'new_table'テーブルから2〜5のエントリを取得していますが、 'missing parenthesis'エラーが発生しました。Mysqlサーバーに括弧の誤りがありません

SELECT * FROM (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY salary ASC) AS row number 
    FROM pact 
) as temp table name 
WHERE rownumber IN (2,5) 
+0

mysql *または* SQL Serverの場合、後者は –

+0

タグで "mysql"と表示されますが、質問テキストには " SQLサーバー"。どちらですか?このコードでは、SQL Server固有の構文が使用されており、MySQLでは動作しません。 – ADyson

+0

およびOracle afaik – smozgur

答えて

0

あなたは別名でスペースを使用することはできません

SELECT * FROM (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY salary ASC) AS rownumber 
    FROM pact 
) as temp_table_name 
WHERE rownumber IN (2,5) 
+0

'templ table name 'も' temp_table_name'のようなスペースなしのバージョンに変換する必要があります –

0

あなたはROW_NUMBER()のようなものはないのMySQLサーバを使用している場合 いますが、このような何か(UNTESTET)を試みることができます:

SELECT * FROM (
    SELECT 
    @num := if(@type = type, @num + 1, 1) as rownumber 
    FROM pact 
    ORDER BY salary ASC 
) as temp_table_name 
WHERE rownumber IN (2,5) 
関連する問題