반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- server side request forgery
- sql 문법
- SQL 쿼리문
- SQL
- Open Web Application Security Project
- web shell
- 보안 설정 오류
- web shell공격
- sql join
- SQL 자격증
- sql injection 공격
- sql group by
- SQL ORDER BY
- 정보보안컨설팅
- ssrf
- ISMSP
- owasp 2022
- CSRF
- sql 개발자
- sql injection
- SQLD
- owasp 가이드
- 암호화 실패
- 잘못된 접근 제어
- blind sql injection
- sql developer
- sql 공부
- 해킹
- sql select
- owasp 취약점
Archives
- Today
- Total
MetaCODING
SQL 문법(6) CASE 본문
728x90
반응형
SQL 문법 - CASE WHEN
MySQL에서 다중 조건문을 사용하고 싶을 때 CASE 함수를 사용해서 처리할 수 있다.
CASE문은 WHEN의 조건을 순차적으로 체크하고 조건을 만족한다면 그에 해당하는 THEN 뒤에 있는 값을 반환한다.
모든 조건을 충족하지 않는다면 마지막 ELSE에 해당하는 값을 반환한다.
<CASE함수의 기본 형식>
CASE
WHEN 조건1 THEN 반환값1
WHEN 조건2 THEN 반환값2
...
ELSE 반환값
END
CASE함수 예시
자동차 대여기록에서 장기/단기대여 구분하기
문제설명
어느 자동차 대여회사의 자동차 대여기록정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블이다.
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며,
HISTORY_ID, CAR_ID, START_DATE, END_DATE는
각각 자동차 대여 기록 ID, 자동차ID, 대여시작일, 대여종료일을 나타낸다.
문제
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여시작일이
2022년 9월에 속하는 대여기록에 대해서 대여기간이 30일이상이면 '장기대여' 그렇지않으면
'단기대여'로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성하라.
결과는 대여기록ID를 기준으로 내림차순으로 정렬하라.
SELECT * from CAR_RENTAL_COMPANY_RENTAL_HISTORY
SELECT * from CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE LEFT (start_date,7) = '2022-09'
SELECT DATEDIFF('종료일', '시작일');
SELECT HISTORY_ID, CAR_ID, LEFT(START_DATE,10) AS START_DATE, LEFT(END_DATE,10) AS END_DATE,
CASE
WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '장기 대여'
ELSE '단기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE LEFT(START_DATE,7) = '2022-09'
order by HISTORY_ID DESC
select created_at, updated_at,
DATEDIFF(updated_at,created_at) as 첫날포함하지_않은차이,
DATEDIFF(updated_at,created_at) + 1 as 첫날포함된차이,
CASE
when created_at like '2022%' then '조건에 해당되는 값'
ELSE '조건에 해당되지 아는 값'
END as 기간
from checkins c
728x90
반응형