为什么在mysql中是一个无效的sql语句。它在甲骨文中工作得很好。
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 '('。
有没有一种变通的方法可以让它工作?
发布于 2019-04-02 21:22:14
尝试使用此查询。
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;发布于 2019-04-03 00:02:47
看起来RANK是MySql中的保留字。在排名周围使用了反引号(),它的效果与预期一致。另一件需要注意的事情是,每个派生表(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;https://stackoverflow.com/questions/55475771
复制相似问题