programing

STATION에서 모음(즉, a, e, i, o 또는 u)으로 시작하는 CITY 이름 목록 쿼리

newstyles 2023. 9. 16. 08:44

STATION에서 모음(즉, a, e, i, o 또는 u)으로 시작하는 CITY 이름 목록 쿼리

목록 쿼리CITY모음으로 시작하는 이름(즉, a, e, i, o, 또는 u)STATION.

내 대답/시도 코드는 다음과 같습니다.

select city from station where REGEXP_LIKE(city,'[^aeiou]+');

하지만 그것은 정확하지 않은 것 같습니다.

이것 좀 도와주세요.

사용하다SUBSTR

select t.city from station t where lower(SUBSTR(city,1,1)) in ('a','e','i','o','u')

BackSlash가 이미 언급한 대로 잘못 작성했습니다.REGEXP_LIKE패턴 그리고 당신은 그것을 바꾸어야 합니다.'^[aeiou].+', 아니면 생략할 수도 있습니다..+문자열의 첫 글자(1자 이상 포함)에만 관심이 있으므로 패턴에 따라 다음을 수행합니다.

select city from station where REGEXP_LIKE(city,'^[aeiou]');

검정 데이터 예제

소문자 모음으로 시작하는 역만 되돌아 올 수 있으니 주의하시기 바랍니다!또한 대문자 모음을 포함하여 패턴에 추가하려는 경우:

select city from station where REGEXP_LIKE(city,'^[aeiouAEIOU]');

안에 명시하거나REGEXP_LIKE입력된 패턴이 대소문자를 구분하지 않는 호출입니다.'i'플래그는 다음과 같습니다.

select city from station where REGEXP_LIKE(city,'^[aeiou]', 'i');

검정 데이터 예제

도움이 되는 댓글을 주신 MT0님께 감사드립니다.

우리가 도와줬음 좋겠어요!

출력을 얻는 또 다른 방법

select distinct CITY from STATION where left(city,1) in ('a', 'e', 'i', 'o', 'u')

3가지 모두 MySQL에서 작동합니다.

  1. 정규 표현을 사용함으로써
SELECT DISTINCT(CITY)
FROM STATION 
WHERE CITY REGEXP '^[aeiou]';
  1. OR을 사용하여
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%");
  1. 사용함으로써SUBSTR(string, start, length).
    SUBSD는 1 기반 인덱싱입니다.
    그러므로,SUBSTR(CITY, 1, 1)길이 1의 위치 1에서 부분 문자열을 추출하는 것을 의미합니다.CITY기둥.
SELECT DISTINCT(CITY)
FROM STATION 
WHERE SUBSTR(CITY, 1, 1) IN ('A', 'E', 'I', 'O', 'U');

MSSQL 서버의 경우:

SELECT DISTINCT(city) FROM station WHERE city LIKE '[a,e,i,o,u]%' ;

MySQL의 경우:

SELECT DISTINCT(city) FROM station WHERE SUBSTR(city,1,1) IN ('a','e','i','o','u');

MySQL 솔루션을 사용해 보십시오.

select distinct CITY from STATION where substr(CITY,1,1) in ('a','e','i','o','u');

여기서 "substring"은 중복값 문제를 해결하고 문자열에서 "substring" 함수를 추출합니다. substring은 start & length도 포함합니다. 자세한 내용은 링크를 참조하십시오 :- https://www.w3schools.com/sql/func_mysql_substr.asp

이는 하위 문자열 및 하위 함수를 사용하여 해결할 수 있습니다.

SELECT CITY FROM STATION WHERE LOWER(SUBSTR(CITY,1,1)) in ('a','e','i','o','u');

substring은 문자열의 첫 번째 문자를 찾을 것이고 더 낮은 함수는 이 첫 번째 문자를 더 낮게 만듭니다.일단 우리가 아래 첫 글자를 찾으면 IN 연산자를 사용하면 모음인지 아닌지 알 수 있습니다.

Postgre를 위해 특별히 2개의 답변을 공유하겠습니다.SQL. 첫 번째 쿼리는 ILIKE를 사용하여 모음으로 시작하는 도시를 반환합니다.

SELECT city 
FROM table  
WHERE city ILIKE 'A%' 
OR city ILIKE 'E%' 
OR city ILIKE 'I%' 
OR city ILIKE 'O%' 
OR city ILIKE 'U%';

ILIKE 연산자는 대소문자를 구분하지 않는 일치를 수행하는 데 사용되므로 대문자 모음을 검색하면 자동으로 작은 글자도 사용됩니다.

하지만 이 질문은 너무 길고 중복된다고 생각합니다.이렇게 많은 조건 없이 이 쿼리를 다시 쓸 수 있습니까?네!

다음과 유사한 기능을 사용합니다.

SELECT city
FROM patients
WHERE city SIMILAR TO '[aeiouAEIOU]%'
ORDER BY city ASC;

그러면 도시 열이 모음으로 시작하는 표에서 모든 행이 반환됩니다(즉, 'a', 'E', 'i', 'O' 또는 'U').% 기호는 임의 수의 문자와 일치하는 와일드카드로 사용됩니다.

Postgre에서는 LIKE TO와 LIKE가 동일하지 않습니다.SQL 입니다.

정규식을 포함할 수 있는 패턴과 문자열을 일치시키는 데 사용됩니다.예를 들어 '[AEIOU]%' 패턴을 사용하여 모음으로 시작하는 모든 문자열을 찾을 수 있습니다.

LIKE는 정규식을 포함하지 않는 패턴과 문자열을 일치시키는 데 사용됩니다.= 연산자와 유사하지만 % 및 _ 와일드카드 문자를 사용하여 각각 임의의 숫자 또는 단일 문자와 일치시킬 수 있습니다.예를 들어 LIKE를 사용하면 'A%' 패턴을 사용하여 모음으로 시작하는 모든 문자열을 찾을 수 있습니다.

그것은 나에게 효과가 있었습니다.

SELECT DISTINCT CITY FROM STATION WHERE CITY REGEXP '^[aeiou]'
SELECT DISTINCT CITY FROM STATION WHERE SUBSTR(CITY,1,1) IN ('A','E','I','O','U')
select distinct city from station where regexp_like(city, ‘^[aeiou]’, ‘i’)

또한 모음 '[aeiou]$'로 끝나는 경우와 모음 '^[aeiou]$'로 끝나는 경우 -로 끝나는 경우 -로 시작하는 경우 i-의 경우 무감각으로 끝나는 도시도 선택합니다.

Mysql에겐, 이건 내게 통했어요.

  select DISTINCT(CITY) from STATION 
  where CITY REGEXP '^[aeiou].*';

아래 솔루션은 MySQL DATABY용입니다.

 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%';
select distinct city from station where city ~*'^(a|e|i|o|u)[a-z]$';

포스트그레스 제품입니다.

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%";
with cte as (
select CITY ,case when lower(substr(CITY,1,1)) in ('a','e','i','o','u') then 1 else 0 end as Rule2
    from STATION
)
select distinct CITY  from cte where Rule2=1;
SELECT distinct(city)
FROM station
WHERE city LIKE '[a,e,i,o,u]%'

는 는 regexp 할 를 과 결합하여 할 수 .REGEXP_LIKE

MYSQL

SELECT DISTINCT CITY 
FROM STATION
WHERE REGEXP_LIKE(city,'^[AEIOU]');

언급URL : https://stackoverflow.com/questions/54920226/query-the-list-of-city-names-starting-with-vowels-i-e-a-e-i-o-or-u-from