728x90
반응형
날짜와 시간을 다루는 방법
TO_CHAR
TO_NUMBER
-> TO_NUMBER(TO_CHAR( , ) AS ~
-> WHERE ~ BETWEEN A AND B
날짜 범위 검색
WHERE hiredate BETWEEN TO_DATE('1981-01-01', 'YYYY-MM-DD')
AND TO_DATE('1981-12-31', 'YYYY-MM-DD')
-숫자 범위 일 경우
-> 범위에 ' ' 없이 지정
-문자 범위 일 경우
-> 범위에 ' '추가해 지정
1. 루시와 엘라 찾기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
ORDER BY ANIMAL_ID
2. 이름에 el이 들어가는 동물 찾기
-- 코드를 입력하세요
-- 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
--이때 결과는 이름 순으로 조회해주세요.
--단, 이름의 대소문자는 구분하지 않습니다. -> UPPER(), LOWER()
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE='Dog' AND LOWER(NAME) LIKE '%el%'AND UPPER(NAME) LIKE '%EL%'
ORDER BY NAME
3. 중성화 여부 파악하기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' OR SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
ELSE 'X'
END AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE('%Neutered%')
OR SEX_UPON_INTAKE LIKE('%Spayed%') THEN 'O'
ELSE 'X'
END AS "중성화"
FROM ANIMAL_INS INS
ORDER BY ANIMAL_ID;
->한글 입력시 ""이거나, 아예 붙이지 않는다.
4. 오랜 기간 보호한 동물 (2)
-> WHERE ROWNUMS<=n
-> FETCH FIRST n ROWS ONLY
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS, ANIMAL_OUTS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY OUTS.DATETIME - INS.DATETIME DESC
FETCH FIRST 2 ROWS ONLY
-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.NAME
FROM (SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS
LEFT JOIN
ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NOT NULL
ORDER BY OUTS.DATETIME-INS.DATETIME DESC) A
WHERE ROWNUM<=2;
-> ORDER BY가 가장 마지막에 처리하므로, 일반적인 ROWNUM으로 처리하려면, 서브쿼리 내에서 정렬 수행필요
-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.NAME
FROM (SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS,ANIMAL_OUTS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY OUTS.DATETIME-INS.DATETIME DESC) A
WHERE ROWNUM<=2;
-> FROM 조인으로 가능
5. DATETIME에서 DATE로 형 변환
-- 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성
--이때 결과는 아이디 순으로 조회
SELECT ANIMAL_ID, NAME, TO_CHAR(DATETIME, 'YYYY-MM-DD') 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
728x90
반응형
'Data Science > SQLP' 카테고리의 다른 글
[ORACLE] 트리거 만들기 (0) | 2022.05.02 |
---|---|
[ORACLE] sqlplus 접속 문제 해결 (0) | 2022.04.12 |
[프로그래머스] 5. JOIN (0) | 2022.03.07 |
[프로그래머스] 4. IS NULL (0) | 2022.03.07 |
[프로그래머스] 3. GROUP BY (0) | 2022.03.07 |