-1

例如,在“Monaco-Ville”中,名称为 Monaco,扩展名为 -Ville。这个问题来自 SQLZOO。我无法使我的解决方案看起来像网站要求的那样。

SELECT name, REPLACE( capital, name, ' ')
FROM world
WHERE capital LIKE concat(name, '_%')

我的解决方案:

name        REPLACE( capi..
Andorra     la Vella
Guatemala   City
Kuwait      City
Mexico      City
Monaco      -Ville
Panama      City

答案应该是什么...

name        ext
Andorra     la Vella
Guatemala   City
Kuwait      City
Mexico      City
Monaco      -Ville
Panama      City
4

4 回答 4

0
SELECT name, REPLACE(capital, name, '') AS ext
FROM world
WHERE capital LIKE CONCAT('%', name, '%')
AND LENGTH(capital) > LENGTH(name)
于 2021-01-05T21:49:47.633 回答
0

你的两个引号之间有一个额外的空格:' '.

如果你修改它SELECT name, REPLACE( capital, name, '')会给你正确的答案;我现在正在审查同样的练习。

于 2020-09-06T12:43:42.860 回答
0

答案可以是这样的:

SELECT name, REPLACE( capital, name, '')
FROM world
WHERE capital LIKE concat(name, '%_')

我遇到了其他一些问题。

听起来那个 sqlzoo 网站对这个问题的答案有错误的设置。

在此处输入图像描述

当我们点击“提交SQL”按钮时,浏览器会发送一个名为'sqlgo'的post请求。并且有我们的解决方案'sql'和sqlzoo官方答案'answer'。问题是sqlzoo官方答案不起作用出色地。

select name,mid(capital,length(name)+1) ext
from world
where capital like concat(name,'_%')

所以检查'sqlgo'的响应,我们可以找到错误信息。

在此处输入图像描述

Sqlzoo 会检查我们 sql 的结果和答案 sql 的结果之间的差异。但是现在答案sql不起作用,所以我们无法得到正确答案。

我们可以通过右上角的齿轮图标将sql Engine从Microsoft SQL修改为MySql。然后它可以很好地工作。

于 2021-09-01T18:56:36.873 回答
0

尝试使用这个:

SELECT name, REPLACE( capital, name, '') as 'ext'
FROM world
WHERE capital LIKE concat(name, '_%')
于 2020-12-27T04:54:49.977 回答