문제
내가 작성한 정답
SELECT ID ,
(CASE
WHEN SIZE_OF_COLONY <=100 THEN 'LOW'
WHEN 10< SIZE_OF_COLONY
AND SIZE_OF_COLONY <=1000 THEN 'MEDIUM'
WHEN SIZE_OF_COLONY >1000 THEN 'HIGH'
END) AS SIZE
FROM ECOLI_DATA
ORDER BY ID ASC;
다른 사람들이 작성한 정답
# SELECT IF(조건문, 참일때 값, 거짓일때 값) ALIAS
SELECT ID, IF(SIZE_OF_COLONY<=100,'LOW',
IF(SIZE_OF_COLONY<=1000,'MEDIUM','HIGH')) AS SIZE
FROM ECOLI_DATA
ORDER BY ID ASC;
MYSQL의 IF
조건 1개일 경우
SELECT
column_name,
IF(column_name > 100, '크다', '작거나 같다') AS size_category
FROM
your_table;
조건 여러개일 경우 - 중첩해서 사용
SELECT
column_name,
IF(column_name > 100, '크다',
IF(column_name > 50, '중간', '작다')) AS size_category
FROM
your_table;
PL/SQL이용하여 ORACLE에 IF 적용해보기
DECLARE -- 선언부
v_value NUMBER := 75; -- v_value라는 NUMBER 타입의 변수를 선언하고 75로 초기화
BEGIN -- 실행부
IF v_value > 1000 THEN
DBMS_OUTPUT.PUT_LINE('HIGH'); -- v_value가 1000보다 크면 '크다' 출력
ELSIF v_value > 10 THEN
DBMS_OUTPUT.PUT_LINE('MEDIUM');
ELSE
DBMS_OUTPUT.PUT_LINE('LOW');
END IF;
-- EXCEPTION 예외 처리부 (선택적)
END;
⇒ DECLARE 섹션에서 변수를 선언하고, BEGIN 섹션에서 조건을 평가하여 결과를 출력
- DBMS_OUTPUT.PUT_LINE : 오라클에서 메세지 출력에 사용하는 프로시저
- ELSIF ⇒ ELSE IF
- :=는 PL/SQL에서 변수를 선언할 때 초기값을 설정하거나, 이미 선언된 변수의 값을 변경할 때 사용되는 대입 연산자
Share article