일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 싱글턴
- https://start.spring.io
- 인텔리제이
- 메소드
- boxing
- 클래스
- 루프
- 제너릭
- dependency
- unboxing
- start.spring.io
- 무한
- 언박싱
- 스프링
- 콜렉션
- 빌드
- wrapper
- 싱글톤
- Scanner
- bootstrap
- 컬렉션
- Jenkins
- Java
- Short
- 박싱
- maven
- 내장객체
- 자동형변환
- suvlet
- 제네릭
Archives
- Today
- Total
Developer Gonie
[6주차] 31. PL/SQL언어, case문 작성하는 방법 본문
-- 첫번째 방법, 일반적인 구조
case(변수명)
when 변수값 혹은 변수 비교 then 실행부;
when 변수값 혹은 변수 비교 then 실행부;
else 실행부; -- 생략가능
end case;
-- 두번째 방법, 실행부에서 변수에 값을 할당하는 코드만 들어가있는 경우 활용가능한
변수 :=
case(변수명)
when 변수값 then 할당값 -- 세미콜론 제거
when 변수값 then 할당값 -- 세미콜론 제거
else 할당값 -- 생략가능
end; -- 이땐 case 키워드를 빼준다.
-- 세번째 방법, if문과 같이 수식을 이용해 구현하는 구조(Java는 case 문에서 수식을 넣는게 불가능한데 오라클은 가능)
case -- 여기에서 변수를 받지 않음
when 수식 then 실행부;
when 수식 then 실행부;
else 실행부; -- 생략가능
end case;
첫번째 방식, 일반적인 구조로 구현한 예시코드
declare
vfruit varchar2(20) := '&과일명';
vname varchar2(20);
begin
case(vfruit)
when 'apple' then vname := '사과';
when 'grape' then vname := '포도';
else vname := '과일아님';
end case;
dbms_output.put_line('입력한 영단어 : ' || vname);
end;
/
과일명의 값을 입력하십시오: apple
구 2: vfruit varchar2(20) := '&과일명';
신 2: vfruit varchar2(20) := 'apple';
입력한 영단어 : 사과
PL/SQL 처리가 정상적으로 완료되었습니다.
declare
vdepartnum number := '&부서번호';
vdepartname varchar2(20);
begin
case(vdepartnum)
when 10 then vdepartname := '총무부';
when 20 then vdepartname := '개발부';
when 30 then vdepartname := '영어부';
else vdepartname := '잘못입력함';
end case;
dbms_output.put_line('부서번호에 해당하는 부서이름 : ' || vdepartname);
end;
/
부서번호의 값을 입력하십시오: 20
구 2: vdepartnum number := '&부서번호';
신 2: vdepartnum number := '20';
부서번호에 해당하는 부서이름 : 개발부
PL/SQL 처리가 정상적으로 완료되었습니다.
두번째 방식, 중복되는 값 할당 코드를 줄일 수 있는 방식
declare
vdepartnum number := '&부서번호';
vdepartname varchar2(20);
begin
vdepartname :=
case(vdepartnum)
when 10 then '총무부'
when 20 then '개발부'
when 30 then '영어부'
else '잘못입력함'
end; -- 위의 변수에 값이 들어가는 것 까지 해야 끝나므로 case 키워드는 빼줘야함.
dbms_output.put_line('부서번호에 해당하는 부서이름 : ' || vdepartname);
end;
/
부서번호의 값을 입력하십시오: 10
구 2: vdepartnum number := '&부서번호';
신 2: vdepartnum number := '10';
부서번호에 해당하는 부서이름 : 총무부
PL/SQL 처리가 정상적으로 완료되었습니다.
세번째 방식, if문과 같이 수식을 이용해 구현하는 구조
-- case문으로 변환시킬 if문으로 구현된 코드
declare
vid number := '&id';
vsalary number;
result varchar2(10);
begin
select id, salary
into vid, vsalary
from members
where id = vid;
if vsalary >= 1000 then
result := '높음';
elsif vsalary >= 500 then
result := '보통';
else
result := '낮음';
end if;
dbms_output.put_line(result);
end;
/
-- if문과 같이 수식을 사용한 case문
declare
vid number := '&id';
vsalary number;
result varchar2(10);
begin
select id, salary
into vid, vsalary
from members
where id = vid;
case
when vsalary >= 1000 then result := '높음';
when vsalary between 500 and 900 then result := '보통';
else result := '낮음';
end case;
dbms_output.put_line(result);
end;
/
'K-DigitalTraining 강의 > 2. Oracle + PLSQL' 카테고리의 다른 글
[6주차] 33. PL/SQL언어, 반복문의 종류(loop, for ~loop, while, 이중 반복문) (0) | 2022.06.17 |
---|---|
[6주차] 32. PL/SQL언어, 변수의 타입을 간편하게 지정하는 방법, 1줄의 레코드를 한 번에 다 담을 수 있는 타입(%type, %rowtype) (0) | 2022.06.17 |
[6주차] 30. PL/SQL언어, if문 작성하는 방법 (0) | 2022.06.16 |
[6주차] 29. PL/SQL언어, INSERT, UPDATE, DELETE 쿼리 사용방법 (0) | 2022.06.16 |
[6주차] 28. PL/SQL언어, SELECT into from쿼리(결과가 1개 행만 나오는 쿼리에서 값을 가져올 수 있음) (0) | 2022.06.16 |
Comments