为什么在mysql中无效的sql语句下面。它在oracle中完美运行。
SELECT originalAmount,fees,id FROM
(SELECT originalAmount,fees,id, ROW_NUMBER() OVER (PARTITION BY transaction_number ORDER BY eventdate ASC) RANK FROM kir_records where customerid= 1704)
WHERE RANK = 1;
将其粘贴到mysql工作台中后,我立即收到语法错误。
错误:
首先选择Select is invalid at this position. Expecting '('
。
是否有解决方法可以使这项工作正常?
答案 0 :(得分:0)
尝试使用此查询。
shouldFilter()
答案 1 :(得分:0)
看起来RANK是MySql中的保留字。在RANK周围使用反引号(``),它按预期工作。需要注意的另一件事是,每个派生表(AKA子查询)确实必须具有别名。 Dervied Table alias
以下是对我有用的查询:
SELECT originalAmount,fees,id FROM
(SELECT originalAmount,fees,id, ROW_NUMBER() OVER (PARTITION BY transaction_number ORDER BY eventdate ASC) `RANK` FROM kir_records where customerid= 1704) AS SomeAlias
WHERE `RANK` = 1;