본문 바로가기

개발/데이타베이스39

DECODE 와 CASE DECODE- DECODE 함수는 조건에 따라 데이터를 다른 값이나 컬럼값으로 추출 할 수 있다.- DECODE(VALUE, IF1, THEN1, IF2, THEN2...) 형태로 사용 할 수 있다.- VALUE 값이 IF1일 경우에 THEN1 값을 반환하고, VALUE 값이 IF2일 경우에는 THEN2 값을 반환한다.- DECODE 함수 안에 DECODE함수를 중첩으로 사용 할 수 있다.아래는 DECODE 함수의 일반적인 예제이다.?12345678910111213-- 부서번호가 10이면 ACCOUNTING, 20이면 RESEARCH, 30이면 SALES-- 나머지는 OPERATIONS를 출력하는 예제SELECT deptno, DECODE(deptno, 10 , 'ACCOUNTING' , 20 , 'RE.. 2017. 2. 21.
order by case mysql 에서 SELECT* FROMfruitORDER BY(CASE originWHEN 'oceania' THEN 1WHEN 'latin' THEN 2WHEN 'asia' THEN 3ELSE 4END),name oracle 에서 (혹시 위 쿼리가 오라클에서 안된다면 아래와 같이) SELECT* FROMfruitORDER BYDECODE(origin , 'oceania',1 , 'latin',2 , 'asia',3 , 4),name 출처 : http://steadypost.net/post/qna/id/5/ 2017. 2. 21.
group by 내부정렬 SELECT number, FROM testGROUP BY number, nameORDER BY number desc, name - order by 에 있는데, group by 에 없으면 에러 - order by 에서 name 이 빠져버리면 전체 그룹의 순서가 깨짐. 걍 group by 순서를 그대로 order by 에도 적용하면 됨. 2017. 2. 21.
HAVING 절 발효(?) 타이밍 mysql> SELECT * -> FROM A a -> GROUP BY a.value1, a.value2 -> HAVING count(*) > 1 -> ;+------+--------+--------+| id | value1 | value2 |+------+--------+--------+| 1 | 10 | kkk |+------+--------+--------+1 row in set (0.01 sec) HAVING은 GROUP BY에 부여하는 조건을 명시한다. 위의 예는 HAVING을 사용하여 중복된 ROW를 찾는 예이다. 그런데 여기서 의문점이 제기된다. '도대체 HAVING이 적용되는 시점은 언제일까?' 테이블 A에서 count(*)>1 인 녀석을 먼저 찾고 GROUP BY가 적용될까?아니면, GR.. 2017. 2. 21.