작성
·
202
2
강사님 안녕하세요.
해당 문제 답을
SELECT city, length(city) length_city
FROM station
ORDER BY length_city, city
LIMIT 1;
SELECT city, length(city) length_city
FROM station
ORDER BY length_city DESC, city
LIMIT 1
라고 UNION 없이 적으셨는데 쿼리가 돌아가서 놀랐어요.
저는 개별 쿼리를 연결하려면 UNION이 꼭 필요하다고 생각했거든요.
그럼 쿼리 연결할 때 UNION이 꼭 필요한 경우는 언제인가요??
그냥 세미콜론 하나로 연결 가능하다면 UNION은 왜 존재하는지 혼란스럽습니다 ;_;
답변 3
1
1. 이 문제에서 UNION 대신 세미콜론을 사용한 이유는 정렬을 해야하기 때문입니다.
UNION과 ORDER BY 절이 같이 실행이 되지 않기 때문에 원하는 결과를 얻지 못할 수 있습니다.
2. 세미콜론으로 두 결과값을 연결해서 출력하는 방법은 서브쿼리 안에서는 사용 불가합니다.
만약 이 문제의 쿼리 전체가 서브쿼리 안에 들어가야 한다면 UNION, 또는 다른 방법으로 풀어야 합니다.
1
0
혹시 여기에 질문을 드려도 되는지 몰라 한번 글 남겨봅니다.
그러면 혹시 아래와 같이 ( )를 쳐서 두개를 구분하고,
UNION으로 묶어도 되는 걸까요?
답은 잘 나오는 것 같더라고요!
(SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY
LIMIT 1)
UNION
(SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) ASC, CITY
LIMIT 1);