2015-07-21 53 views
-1

問題:找到資本和名稱,其中大寫字母是國家名稱的擴展名。 注意的是,資本必須大於名稱(墨西哥城市相比,盧森堡) 這是我的工作更長的時間,但它是不正確選擇其中一列中的字符串是另一列中字符串的擴展名的行

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

只需要添加 - 'AND LEN(首都)> LEN(名稱)'或'資本<> name' – GarethD

回答

0

爲了得到擴展,您可以使用REPLACE功能,在下面的查詢從「資本」替代國「名稱」爲空。

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

你可以用簡單的英語解釋代碼正在做什麼來提高這個答案的質量。 –

+0

感謝您的建議。 :) –

0

你可以做這樣的事情:

LEN()函數返回文本字段中值的長度。

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

試試這個。這對我有用。

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

這是寫代碼的最具包容性的方式。它可以寫得更簡潔

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

資本名稱就是這樣的情況,這個國家永遠是第一位的,墨西哥城而不是墨西哥城 - ​​至少用英語。

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

正確的^ _^

0
SELECT name, capital 
FROM world 
WHERE capital LIKE concat('%', name, '%') 
AND LENGTH(capital) > LENGTH(name) 
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 
相關問題