SQLZoo Matching name and capital题目SQL执行正确却无法通过问题
问题排查与解决方案
卡关核心原因
- 存在多余返回字段:题目明确要求仅展示国家名称和首都两个字段,你在查询中额外输出了
len(name)、len(capital)两个计算字段,SQLZoo的关卡校验逻辑会严格匹配返回字段的数量、顺序,多出来的字段会直接判定结果不通过。 - 长度函数存在兼容性问题:你使用的
LEN()是SQL Server专属的字符串长度函数,SQLZoo后台默认使用MySQL环境,对应统计字符长度的标准函数为CHAR_LENGTH(),该函数统计的是字符个数,不会像LENGTH()(字节长度统计)一样在遇到带重音符号、非ASCII字符的名称时出现计算偏差。
符合要求的SQL写法
SELECT name, capital FROM world WHERE CHAR_LENGTH(name) = CHAR_LENGTH(capital);
内容的提问来源于stack exchange,提问作者Jan97
相关产品推荐
相关产品推荐

