Oracle 14

[오라클|Oracle] 조회된 값에 대한 조건 걸기 - CASE...WHEN...THEN

오라클 Oracle CASE WHEN THEN 조회해 올 때의 조건은 WHERE 문으로 조건을 걸어 가져올 수 있습니다. 하지만 가져온 값에 어떤 조건을 걸어 보여 주거나 또는 값을 변환할 필요가 있을 경우는 CASE...WHEN...THEN 문을 씁니다. CASE WHEN 문에는 두 가지 형태의 사용 방법이 있습니다. 1. 특정 Column의 값만 비교하고 싶을 때 SELECT CASE TO_CHAR(SYSDATE, 'YYYY') WHEN '2013' THEN SYSDATE WHEN '2014' THEN SYSDATE + 1 ELSE NULL END SYS_DATE FROM DUAL; CASE 와 WHEN 사이에 비교하고자 하는 Column 을 넣고 WHEN 과 THEN 사이에 비교하고자 하는 값을 넣..

IT 개발 2013.12.25

[오라클|Oracle] 단일 column 값을 몇 개의 column으로 분산하기

오라클 Oracle column 값을 분산하기 각각한 단일한 column 값들을 같은 의미를 가지는 몇 개의 column으로 분산하여 나열하고 싶을 때, SELECT OBJ#, NAME FROM SYS.COL$ WHERE OBJ# IN (16, 20) AND COL# < 6 ORDER BY OBJ#; OBJ# NAME 16 TS# 16 NAME 16 OWNER# 16 ONLINE$ 16 CONTENTS$ 20 OBJ# 20 BO# 20 COL# 20 POS# 20 SEGCOL# 이 테이블 조회 값을 가로로 2번 나열하는 형태를 만들어 보겠습니다. 우선 Rownum 값과 그걸 2로 나눈 나머지 값을 추가하겠습니다. SELECT (ROWNUM - 1) RNUM, MOD(ROWNUM - 1, 2) MNUM, ..

IT 개발 2013.11.09

[오라클|Oracle] 세로 칼럼 값을 가로로 펼치기

오라클 Oracle 세로 칼럼 값 가로로 펼치기 경우에 따라 선 단일 Column 조회 값을 가로로 펼쳐야 할 경우도 있습니다. 이 포스팅에선 이에 대해서 알아보겠습니다. SELECT OBJ#, COL#, NAME FROM SYS.COL$ WHERE OBJ# = 16 AND COL# < 6 OBJ# COL# NAME 16 1 TS# 16 2 NAME 16 3 OWNER# 16 4 ONLINE$ 16 5 CONTENTS$ 이 테이블을 COL# 값을 기준으로 가로로 펼치는 작업을 해보겠습니다. 우선 Row 수는 그대로 둔 체, COL#을 column 형태로 변경합니다. SELECT OBJ#, DECODE(COL#, 1, NAME, NULL) COL_1, DECODE(COL#, 2, NAME, NULL) CO..

IT 개발 2013.11.09

[오라클|Oracle] 조회값 연속으로 이어 붙이기 - SYS_CONNECT_BY_PATH

오라클 Oracle SYS_CONNECT_BY_PATH 조회된 값을 이어 붙이고 싶으실 때는 SYS_CONNECT_BY_PATH 을 사용하시면 됩니다. SELECT SUBSTR(MAX(SYS_CONNECT_BY_PATH(A, ',')), 2) PATH_1, SUBSTR(MAX(SYS_CONNECT_BY_PATH(B, ',')), 2) PATH_2 FROM ( SELECT ROWNUM RNUM, A, B FROM ( SELECT '가족' A, '아버지' B FROM DUAL UNION SELECT '가족' A, '어머니' B FROM DUAL UNION SELECT '가족' A, '형' B FROM DUAL UNION SELECT '가족' A, '누나' B FROM DUAL UNION SELECT '친가'..

IT 개발 2013.11.09
반응형