https://programmers.co.kr/learn/courses/30/lessons/59411
입양을 간 동물 중 보호기간이 가장 길었던 동물 '두 마리'의 아이디와 이름을 보호 기간이 긴 순으로 조회하는 SQL문을 작성하는 문제다.
따라서 where 절을 통해 두개의 테이블을 조인하고 보호기간이 긴 순으로 정렬해야 하기 때문에
보호소에서 나간 날짜에서 보호소로 들어온 날짜를 뺀 다음 그것을 DESC를 통해 내림차순 했다.
또한 LIMIT 2 명령어를 사용해 2개만 출력하게 했다.
코드는 다음과 같다.
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY B.DATETIME-A.DATETIME DESC
LIMIT 2
0826 TIL
ifnull( 칼럼, "바꿀텍스트") : ORACLE에서으 NVL() 과 같다.
WHERE NAME IN ("~~~","~~~") IN 안에 있는 있는 것들을 OR처럼 생각한다.
SQL에서 LIKE절 사용법
'_' : 글자 숫자를 정해줌 (컬럼명 LIKE '루_시')
'%' : 글자 숫자를 정해주지 않고 해당 문자를 포함한 결과를 모두 출력한다 ( 컬럼명 LIKE '루%')
DATE_FORMAT( date컬럼, "%Y-%m-%d") 을 통해 날짜를 지정한 형식으로 출력할 수 있다.
NOW() 는 현재시간을 불러온다. 대신에 FROM DUAL을 사용해야함
대소문자 연산자(upper / lower)
CASE WHEN문
CASE
WHEN 조건
THEN '반환 값'
WHEN 조건
THEN '반환 값'
ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END
'TIL' 카테고리의 다른 글
프로그래머스 네트워크 Java (0) | 2021.08.29 |
---|---|
[TIL] 프로그래머스 SQL 및 코딩문제 풀이 (0) | 2021.08.28 |
[TIL] CSS 포지셔닝, JavaScript 문법, MySQL JOIN (0) | 2021.08.27 |
프로그래머스 SQL 입양 시각 구하기(2) MySQL (0) | 2021.08.26 |
알고리즘 문제 풀면서 배운 것들 (0) | 2021.08.25 |
최근댓글