[SQL 문제 풀이] 조건에 맞는 사용자 정보 조회하기

프로그래머스 (164670)
Stupefyee's avatar
Apr 08, 2025
[SQL 문제 풀이] 조건에 맞는 사용자 정보 조회하기
notion image
notion image
 

내가 작성한 쿼리

Oracle

SELECT USER_ID, NICKNAME, CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2 전체주소, SUBSTR(TLNO, 1, 3) || '-' || SUBSTR(TLNO, 4, 4) || '-' || SUBSTR(TLNO, 8) 전화번호 FROM USED_GOODS_BOARD UGB JOIN USED_GOODS_USER UGU ON WRITER_ID = USER_ID GROUP BY USER_ID, NICKNAME, CITY, STREET_ADDRESS1, STREET_ADDRESS2, TLNO HAVING COUNT(WRITER_ID) >= 3 ORDER BY UGU.USER_ID DESC;

MySQL

SELECT USER_ID, NICKNAME, CONCAT(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) 전체주소, INSERT(INSERT(TLNO, 8, 0, '-'), 4, 0, '-') 전화번호 FROM USED_GOODS_BOARD UGB JOIN USED_GOODS_USER UGU ON WRITER_ID = USER_ID GROUP BY WRITER_ID HAVING COUNT(WRITER_ID) >= 3 ORDER BY USER_ID DESC;

차이점

  • 문자열 결합 방식의 차이
  • 전화번호 형식 변환의 차이
    • OracleINSERT() 없음 → Oracle 방식을 MySQL에선 사용 가능
  • 그룹화 방식의 차이
    • Oracle: ANSI SQL 표준을 엄격히 준수
    • MySQL: ANSI SQL 표준을 엄격히 준수하지 않음
      • ANSI SQL 표준
        • 모든 DBMS가 같은 SQL 문법과 동작을 하도록 만든 약속
 
Share article

stupefyee