我正在使用 Hacker Rank 充分学习 SQL 以通过编码面试。
当我使用 DB2 运行在线编译器时,我注意到在线编译器出现错误。在 Oracle、MS MS SQL SERVER 或 MySQL 中不会产生错误。
以下代码是上面发布的问题的解决方案。
SELECT *
FROM City
WHERE Countrycode = 'JPN';
它在除 Db2 之外的所有内容中返回以下内容:
1613 Neyagawa JPN Osaka 257315
1630 Ageo JPN Saitama 209442
1661 Sayama JPN Saitama 162472
1681 Omuta JPN Fukuoka 142889
1739 Tokuyama JPN Yamaguchi 107078
但是由于某种原因,使用 DB2 它会返回解决方案,然后返回一条错误消息:
1613 Neyagawa JPN Osaka 257315
1630 Ageo JPN Saitama 209442
1661 Sayama JPN Saitama 162472
1681 Omuta JPN Fukuoka 142889
1739 Tokuyama JPN Yamaguchi 107078
DB21034E 该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理过程中,它返回:
SQL0104N 在“k line.*/ uncatalog”之后发现了意外的标记“database”。预期的标记可能包括:“JOIN”。
SQLSTATE=42601
Db2 的使用范围有多广?如何避免这个错误?
数据库未编目时会提示此错误。 Db2 需要目录才能获得正确答案。您检查数据库是否在本地目录中编目并运行该程序。在 hackerrank 上,我们无法检查数据库,因此会出现错误。
我只是做了同样的事情,结果我只需要添加“;”在该行的末尾,如说明所述。来自Python,我忘了
你可以做的就是删除黑客排名底部的评论,这对我有帮助。