어제 풀었듯이 NULL을 처리하는 문제이다.

NULL처리는 DECODE 와 CASE로 할 수 있으며 범위에 따라 다른값이 아니므로 DECODE로 한다.

SELECT ANIMAL_TYPE, DECODE(NAME, NULL, 'No name', NAME) AS NAME, SEX_UPON_INTAKE 
 FROM ANIMAL_INS ORDER BY ANIMAL_ID;

또한 찾아보니 NVL이라는 함수를 사용하여 NULL을 처리할 수 있다.

SELECT NVL(colname, 치환할 값) 으로 사용한다.

SELECT ANIMAL_TYPE, NVL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE 
 FROM ANIMAL_INS ORDER BY ANIMAL_ID;

GROUP BY 와 HAVING을 사용하여 푸는 문제였다.

사용법은 SELECT col이름, 집계함수 FROM table GROUP BY col이름 HAVING 집계의 조건 이다.

이를 응용해서 풀어보았다.

SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL 
 GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME;

UPPER을 사용하여 EL을 찾아 조회하는 문제이다.

LIKE를 이용해 문자열에 EL이 포함되는지 확인하여 출력하면 된다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS 
 WHERE ANIMAL_TYPE = 'Dog' AND UPPER(NAME) LIKE '%EL%' ORDER BY NAME;

갯수 세는 문제이며 COUNT를 사용해서 풀면 된다.

SELECT COUNT(*) FROM ANIMAL_INS;

MIN을 이용하여 조회하는 문제이며 MAX와 똑같이 쓰면 된다.

SELECT MIN(DATETIME) FROM ANIMAL_INS;

+ Recent posts