首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql8.0中select子查询的问题

Mysql8.0中select子查询的问题
EN

Stack Overflow用户
提问于 2019-04-02 21:15:26
回答 2查看 112关注 0票数 0

为什么在mysql中是一个无效的sql语句。它在甲骨文中工作得很好。

代码语言:javascript
复制
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 '('

有没有一种变通的方法可以让它工作?

EN

回答 2

Stack Overflow用户

发布于 2019-04-02 21:22:14

尝试使用此查询。

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2019-04-03 00:02:47

看起来RANK是MySql中的保留字。在排名周围使用了反引号(),它的效果与预期一致。另一件需要注意的事情是,每个派生表(AKA子查询)必须确实有一个别名。Dervied Table alias

以下是对我有效的查询:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55475771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档