在 MySQL 上得到正确答案,但在 Oracle 上得到错误答案

Posted

技术标签:

【中文标题】在 MySQL 上得到正确答案,但在 Oracle 上得到错误答案【英文标题】:Getting correct answer on MySQL but wrong for Oracle 【发布时间】:2020-05-09 21:16:23 【问题描述】:

我正在解决一个关于 SQL 的 HackerRank 问题。 问题是:

*从STATION 查询CITY 名称列表,仅包含偶数ID 数字。您可以按任何顺序打印结果,但必须从答案中排除重复项。

输入格式

STATION 表描述如下:* Station

我的解决方案是:

SELECT DISTINCT CITY
FROM STATION
WHERE (ID%2)=0

现在对于这个解决方案,我在 mysql 上得到了正确的答案,但在 Oracle 上得到了错误的答案。为什么会这样? 我是 SQL 新手,所以不太了解。

【问题讨论】:

为什么有两个用户投票结束这个问题?我认为它非常清楚并显示出足够的努力,它可能只需要重新措辞,但在这种情况下,最好将其标记为“需要改进”。 【参考方案1】:

使用mod()函数:

SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0;

MySQL(和许多数据库)使用% 作为模数函数。为此,Oracle 使用了MOD() 函数。

【讨论】:

以上是关于在 MySQL 上得到正确答案,但在 Oracle 上得到错误答案的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在这个非常简单的 MySQL 查询上得到文件排序?

mysql数据库中的特殊字符

在其他机器上得到 404,为啥?

为啥我的 Perl 程序在一台机器上得到污染警告,而在另一台机器上却没有?

SQL Alchemy - 从 Oracle 迁移到 MySQL 的 Python 脚本

为什么我一直在SQL上得到相同的错误消息