[프로그래머스][SQL] 역순 정렬하기

행복한 콩🌳·2022년 6월 28일
0

SQL

목록 보기
2/31

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;

풀이

SQL문을 작성할 때는 무엇을 가져올 것인지 먼저 확인
이 경우 이름[NAME] 보호 시작일[DATE]를 가져와야하니
SELECT문으로 가져오고, ANIMAL_INS에서 가져오니까 FROM
그리고 ORDER BY로 열 정렬 여기는 역순이니 DESC

추가

다른 분들 풀이 찾아보니 DB별로 정답이 다른 듯 하다.

Mysql 문법 정답

SELECT NAME, DATETIME 
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID DESC;

Oracle 문법 정답

ANIMAL_ID;
SELECT NAME, DATETIME 
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID DESC;

ORDER BY

order by 칼럼명 형태로 제공이 됩니다.
특정 칼럼을 기준으로 테이블을 정렬하겠다는 뜻입니다.
SELECT 문을 사용할 때 출력되는 결과물은 테이블에 입력된 순서대로 출력되는 것이 기본입니다. 하지만 내림차순으로 혹은 오름차순으로 정렬된 데이터들이 필요할 때가 있습니다. 이때 사용하는 것이 ORDER BY 절 입니다.

ORDER BY 절은 항상 SELECT 문의 맨 마지막에 위치합니다.

1) 오름차순 (asc)
order by 칼럼명 (asc)
asc는 오름차순을 의미하며 쓰지 않더라도 묵시적으로 asc로 정의됩니다.

2) 내림차순 desc
order by 칼럼명 desc
내림차순은 기본의 역순이므로 명시적 표현만 가능합니다.

profile
매일매일 조금씩 모여 숲이 되자🐣

0개의 댓글