일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- alias
- CRUD
- 제약조건
- 성적프로그램
- 답변형 게시판
- 한글 인코딩
- HTTP Status 500
- Oracle SQL
- git
- distinct
- 과정평가형
- Oracle DB
- HTTP Status 404
- github
- oracle
- ||
- Bootstrap
- JavaScript
- rownum
- sql developer
- jQuery
- SQL
- Java
- HTML
- 부트스트랩
- 이클립스
- 모조칼럼
- tomcat
- group by
- JSP
초급의 끄적거림
[SQL] case when ~ then end 구문 / decode() 함수 본문
[case when ~ then end 구문]
⊙ 형식
case when 조건1 then 조건만족시 값1
when 조건2 then 조건만족시 값2
when 조건3 then 조건만족시 값3
. . .
else 값 - case 에 나오는 조건이 없을 경우 default값이라고 보면 됨
end 결과칼럼명 - 결과칼럼명에 한글 넣을 경우 " " 사용
⊙ 문1) 국어점수에 따라 A, B, C, D, F 학점을 구하시오
select uname, kor, CASE when kor>=90 then 'A학점' when kor>=90 then 'B학점' when kor>=90 then 'C학점' when kor>=90 then 'D학점' else 'E학점 end "학점" from sungjuk; |
⊙ 문2) addr 칼럼의 주소를 한글로 조회하시오
select uname, addr, CASE when addr='Seoul' then '서울' when addr='Jeju' then '제주' when addr='Suwon' then '수원' when addr='Busan' then '부산' end address from sungjuk; |
⊙ 문3) 부서코드 10 경리팀, 20 연구팀, 30 총무팀, 40 전산팀
select ename, deptno, CASE when detpno=10 then '경리팀' when detpno=20 then '연구팀' when detpno=30 then '총무팀' when detpno=40 then '연구팀' END deptname from sungjuk; |
⊙ 문4) 커미션 5이상 '5%' 4이상 '4%' 3이상 '3%' 2이상 '2%' 나머지 '없음'
select ename, deptno, sal, CASE when nvl(comm,0)>=5 then '5%' when nvl(comm,0)>=4 then '4%' when nvl(comm,0)>=3 then '3%' when nvl(comm,0)>=2 then '2%' else '없음' END bonus from emp; |
[decode() 함수]
⊙ 값을 비교하여 해당하는 값을 돌려주는 함수. 단, 비교시에는 정확히 같은 값 (=)만 비교가 가능
decode (A, B, 같을 때의 값, 다를 때의 값)
select ename, deptno, decode(deptno, 10, '경리팀' , 20, '연구팀' , 30, '총무팀') 부서 from emp; |
'DB > Oracle' 카테고리의 다른 글
[SQL] 학사프로그램 inner join 활용 (0) | 2019.07.29 |
---|---|
[SQL] 학사관리프로그램 만들기 (0) | 2019.07.26 |
[SQL] join 1 (0) | 2019.07.24 |
[SQL] Index (0) | 2019.07.24 |
[SQL] View (0) | 2019.07.23 |