inblog logo
|
silver
    SQL문제풀기

    [SQL문제풀기] Weather Observation Station 9

    silver's avatar
    silver
    Apr 07, 2025
    [SQL문제풀기] Weather Observation Station 9
    Contents
    문제MySQLOracleMS SQL Server - MySQL과 유사DB2 - Oracle과 유사정리!

    문제

    Weather Observation Station 9 | HackerRank
    Query an alphabetically ordered list of CITY names not starting with vowels.
    Weather Observation Station 9 | HackerRank
    https://www.hackerrank.com/challenges/weather-observation-station-9/problem?isFullScreen=true
    Weather Observation Station 9 | HackerRank

    MySQL

    : 대소문자 구분하지 않아도 됨

    내가 작성한 정답1 - like

    select distinct city from station where city not like 'I%' and city not like 'E%' and city not like 'A%' and city not like 'O%' and city not like 'U%';

    내가 작성한 정답2 - 정규표현식

    select distinct city from station where city not regexp '^[aeiou]';

    내가 작성한 정답3 - substring, substr 둘 다 사용가능

    select distinct city from station where substr(city,1,1) not in ('a','e','i','o','u'); select distinct city from station where substring(city,1,1) not in ('a','e','i','o','u');

    내가 작성한 정답4 - left

    select distinct city from station where left(city,1) not in ('a','e','i','o','u');

    Oracle

    : 대소문자 구분 필요

    내가 작성한 정답1 - like

    : 도시의 첫글자는 대문자
    select distinct city from station where city not like 'I%' and city not like 'E%' and city not like 'A%' and city not like 'O%' and city not like 'U%';

    내가 작성한 정답2 - 정규표현식 regexp_like

    select distinct city from station where not regexp_like(lower(city),'^[aeiou]');

    내가 작성한 정답3 - substr

    select distinct city from station where substr(lower(city),1,1) not in ('a','e','i','o','u');

    MS SQL Server - MySQL과 유사

    : 대소문자 구분 x

    내가 작성한 정답1 - like

    select distinct city from station where city not like 'I%' and city not like 'E%' and city not like 'A%' and city not like 'O%' and city not like 'U%';

    내가 작성한 정답2 - like2

    select distinct city from station where city not like '[aeiou]%';

    내가 작성한 정답3 - substring

    select distinct city from station where substring(city,1,1) not in ('a','e','i','o','u');

    내가 작성한 정답4 - left

    select distinct city from station where left(city,1) not in ('a','e','i','o','u');

    DB2 - Oracle과 유사

    내가 작성한 정답1 - like

    select distinct city from station where city not like 'I%' and city not like 'E%' and city not like 'A%' and city not like 'O%' and city not like 'U%';

    내가 작성한 정답2 - substr

    select distinct city from station where substr(lower(city),1,1) not in ('a','e','i','o','u');

    정리!

    💡
    DBMS
    문자추출
    left 유무
    정규표현식
    MS SQL Server
    substring - 음수지원 X
    o
    x → like로 표현가능
    MySQL
    substring - 음수 지원
    o
    o → regexp
    Oracle
    substr - 음수 지원
    x
    o → regexp_like(colunm,정규식)
    DB2
    substr - 음수 지원 X
    x
    x → substr로 표현가능
     
    Share article

    silver

    RSS·Powered by Inblog