프로그래머스SQL - (STRING, DATE) - END

2400·2021년 10월 22일

SQL 공부

목록 보기
1/3

- 루시와 엘라 찾기 : too easy : in 문을 쓰는 문제인듯

select ANIMAL_ID, NAME, SEX_UPON_INTAKE from ANIMAL_INS as ani_i
where 1=1
and ani_i.NAME in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
  • 이름에 el이 들어가는 개 찾기 : 의외로 고민했음 : 당연히 Like 나 Regex_like 를 쓰는 문제. 그런데 Like 에 Upper를 어떻게 같이 쓰지 몰라서 검색했음
SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
**AND UPPER(NAME) LIKE UPPER('%el%')**
ORDER BY NAME
SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
**AND regexp_like(UPPER(NAME), ('el'), 'i)**
-- 출처 : https://jhnyang.tistory.com/292
ORDER BY NAME
  • 중성화 여부 판단하기 : regex_like 에서 여러 조건을 걸려면 하나의 '~~' 안에 | 같은걸 걸면 된다. 그리고 CASE 는 SELECT가 있는 행에서 걸면 된다.
SELECT ANIMAL_ID, NAME, CASE
    WHEN regexp_like(SEX_UPON_INTAKE, ('Neutered|Spayed')) 
    THEN 'O' 
    ELSE 'X'
END as 중성화 -- 한글써도 되나?
FROM ANIMAL_INS
WHERE 1=1 

ORDER BY ANIMAL_ID
  • 오랜 기간 보호한 동물 (2) : 보자마자 timestamp 생각이 들었음 : easy
SELECT ani_in.ANIMAL_ID, ani_in.NAME 
FROM ANIMAL_INS ani_in JOIN ANIMAL_OUTS ani_out
ON ani_in.ANIMAL_ID = ani_out.ANIMAL_ID
WHERE 1=1
AND ani_in.NAME is not null 
ORDER BY TIMESTAMPDIFF(second, ani_in.DATETIME, ani_out.DATETIME) desc
LIMIT 2
  • DATETIME에서 DATE로 형 변환 : 당연히 Date 함수 사용
select ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') FROM ANIMAL_INS
order by ANIMAL_ID asc
profile
공부용 혹은 정리용 혹은 개인저장용

0개의 댓글