选择一列中的字符串是另一列中字符串的扩展名的行

时间:2015-07-21 06:43:09

标签: sql

问题:找出资本和国家名称延伸的名称。 请注意,资本必须长于名称(墨西哥城与卢森堡相比) 这是我的工作,但它不正确

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

9 个答案:

答案 0 :(得分:1)

要获得扩展程序,您可以使用REPLACE函数,该函数在以下查询中替换' name'来自'资本'的国家为空。

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

答案 1 :(得分:1)

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

纠正^ _ ^

答案 2 :(得分:1)

select name,capital
from world
where capital like concat(name,'%') and capital <> name;

输出:

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

答案 3 :(得分:0)

你可以这样做:

LEN()函数返回文本字段中值的长度。

SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')
AND LEN(Capital) > LEN(name)

答案 4 :(得分:0)

试试这个。这对我有用。

SELECT name, capital
FROM world
WHERE capital LIKE concat(name, '%') AND capital <> name;

答案 5 :(得分:0)

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

这是编写代码最具包容性的方法。

可以写得更简洁
SELECT capital, name
FROM world
WHERE capital LIKE concat(name, '%')

资本名称的情况是该国家始终排在第一位,例如:墨西哥城而不是墨西哥城 - ​​至少用英语。

答案 6 :(得分:0)

SELECT name, capital  
FROM world   
WHERE capital LIKE concat('%', name, '%')  
AND LENGTH(capital) > LENGTH(name)

答案 7 :(得分:0)

SELECT capital, name
FROM world
WHERE capital LIKE CONCAT(name, '%') 
AND name != capital

答案 8 :(得分:0)

SELECT name 
FROM world
WHERE capital LIKE concat(name, ' city')