我試圖從表 - STATION查詢不以含有重複結果的元音開頭的CITY名稱列表。 表只是有ID,城市,人口SQL查詢查找不以元音開頭的城市名稱列表
這是我寫
SELECT DISTINCT CITY FROM STATION
WHERE CITY RLIKE '[^bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ].*';
這給出了一個錯誤的答案查詢。我在這裏做錯了什麼?
我試圖從表 - STATION查詢不以含有重複結果的元音開頭的CITY名稱列表。 表只是有ID,城市,人口SQL查詢查找不以元音開頭的城市名稱列表
這是我寫
SELECT DISTINCT CITY FROM STATION
WHERE CITY RLIKE '[^bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ].*';
這給出了一個錯誤的答案查詢。我在這裏做錯了什麼?
試試這個。
SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT RLIKE '^[aeiouAEIOU].*$'
一個^
正則表達式中可以有不同的含義,這取決於它的位置。當它是正則表達式中的第一個字符時,它指向字符串的開頭。但是當它是一組中的第一個字符時,如[^abc]
,這意味着not one of
。當它出現在別處時,它只是指^
本身。
所以,你會需要這樣的東西:
SELECT DISTINCT CITY FROM STATION
WHERE CITY RLIKE '^[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ].*';
,或者只是排除信你不想:
SELECT DISTINCT CITY FROM STATION
WHERE CITY RLIKE '^[^aeiouAEIOU].*';
select distinct city from station
where city Not like 'A%' and city Not like 'E%' and city Not like 'I%' and
city Not like 'o%' and city not like 'U%';
SELECT DISTINCT CITY from STATION WHERE CITY RLIKE '^[^aeiouAEIOU].*$'
這適用於MySQL的 – SunnyShineColorado
select distinct city from station where
city not in
(select distinct city from station where
(city like "A%" or
city like "E%" or
city like "I%" or
city like "O%" or
city like "U%"
));
這將工作我猜測。
請提供理由,爲什麼它會起作用。 – piyushj
SELECT DISTINCT CITY FROM STATION
WHERE CITY RLIKE '^.*[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$';
這個工作在MS SQL SERVER:
select distinct city from station where city NOT like '[aeuio]%' Order by City;
它在MS SQL SERVER上工作 –
在MS SQL:
Select DISTINCT CITY
FROM
STATION
Where CITY NOT LIKE 'A%' AND CITY NOT LIKE 'E%' AND CITY NOT LIKE 'I%' AND CITY NOT LIKE 'O%' AND CITY NOT LIKE 'U%';
可以使用 選擇站不同的城市,城市不是RLIKE「^ [aeiouAEIOU ] *'
select distinct C ITY從STATION離開(CITY,1)不在('a','e','i','o','u')或右邊(CITY,1)不在('a','e' , 'I', '0', 'U');
select distinct city from station where city regexp
'^[^aeiou].*[^aeiou]$'
如果你的查詢沒有開始,並以元音結束。
選擇從站,在那裏CITY NOT LIKE DISTINCT CITY '[A,E,I,O,U]%'
嘗試這一個
SELECT DISTINCT CITY FROM STATION WHERE LOWER(SUBSTR (CITY,LENGTH(CITY),1))IN('a','e','i','o','u');
SELECT DISTINCT CITY FROM STATION WHERE CITY NOT RLIKE '[aeiouAEIOU] $'
這從STATION
,要麼不與元音開始適用於MYSQL
您已將模式錨定到字符串的末尾,而不是開始。這讓你的城市不會以元音結尾,與所要求的相反。嘗試 –
嘗試選擇'阿伯丁'不RLIKE'[aeiouAEIOU] $',看看你得到什麼。 –
查詢城市名的列表或者不以元音結束。在Oracle
select distinct city
from station
where regexp_like(city, '^[^aeiouAEIOU]|*[^aeiouAEIOU]$');
嘗試以下操作:
SELECT DISTINCT CITY FROM STATION
WHERE CITY REGEXP '^[^aeiou].*';
的MySQL參考:https://dev.mysql.com/doc/refman/5.5/en/regexp.html
嘗試'NOT RLIKE '^ [aeiouAEIOU] * $'' –