DBMS/SQLQuery(29)
-
wm comcat
WM_CONCAT 함수는 19c에서는 지원되지 않으므로 LISTAGG 함수로 변경해야 한다. - WM_CONCAT 함수는 Oracle 11g에서 사용되던 비공식적인 함수로, 특정 컬럼의 여러 값을 쉼표로 구분하여 결합할 수 있었지만 Oracle 19c에서는 이 함수가 더 이상 지원되지 않으며, ORA-00904 오류를 발생시킬 수 있다. 이 문제를 해결하기 위해 공식적으로 지원되는 LISTAGG 함수를 사용해야 한다. LISTAGG는 특정 컬럼의 값을 구분자로 연결하여 하나의 문자열로 반환해주며, 더 안전하고 효율적인 함수이다. WM_CONCAT를 사용하던 코드는: SELECT WM_CONCAT(column_name) FROM table_name; LISTAGG로 변경하면: SELECT LISTA..
2024.09.09 -
trim
Trim 함수는 문자열에서 특정 문자를 제거하는 데 사용되는 함수로 문자열의 앞부분(Leading), 뒷부분(Trailing), 또는 양쪽 끝(Both)에 위치한 문자를 제거할 수 있다. Trim 함수의 구성 요소 첫 번째 인수: 제거할 문자의 위치를 지정한다. - LEADING: 문자열의 앞부분에서 제거. - TRAILING: 문자열의 뒷부분에서 제거. - BOTH: 문자열의 양쪽 끝에서 제거.
2024.07.24 -
PERCENT_RANK() 상대평가
KEY GRP VAL1 VAL21 A 10 1002 A 10 2003 A 10 3004 A 20 4005 A 50 5006 B 40 6007 B 10 7008 B 20 8009 B 20 90010 B 10 1000\[ \text{PERCENT_RANK} = \frac{\text{RANK} - 1}{\text{ROW_COUNT} - 1} \] - RANK: 해당 값의 순위. 동일한 값은 동일한 순위를 가진다. - ROW_COUNT: 파티션 내의 총 행 수. GRP = 'A' 파티션에서의 계산 - KEY = 1, 2, 3: \[ \text{PERCENT\_RANK} = \frac{1 - 1}{5 - 1} = \frac{0}{4} = 0.0 \] - KEY = 4: \[..
2024.06.22 -
WINDOW FUNCTION
create table emp01(empid varchar2(20),deptid varchar2(20),sal number);--001부터 시작하는 값 Sequence 생성 CREATE SEQUENCE empid_seqSTART WITH 1INCREMENT BY 1MAXVALUE 1000 -- 시퀀스가 생성할 수 있는 최대값을 설정할 수 있다.NOCYCLE -- 시퀀스가 최대값에 도달했을 때 재사용하지 않도록 설정한다.CACHE 10; -- 시퀀스 값을 캐시하여 성능을 향상시킬 수 있다.--trigger 생성--insert시 자동으로 empid 값을 설정 create or replace trigger trig_empidbefore insert on emp01for each row..
2024.06.22 -
계층 쿼리 prior 위치
drop table departments_test_test; CREATE TABLE departments_test ( dept_id NUMBER PRIMARY KEY, dept_name VARCHAR2(100), parent_dept_id NUMBER);INSERT INTO departments_test (dept_id, dept_name, parent_dept_id) VALUES (1, 'CEO Office', NULL);INSERT INTO departments_test (dept_id, dept_name, parent_dept_id) VALUES (2, 'Marketing', 1);INSERT INTO departments_test (dept_id, dept_name, p..
2024.05.21 -
NVL, COALESCE, NULLIF
■ NVL 은 Oracle에서 첫 번째 매개변수가 NULL일 경우 두 번째 매개변수를 반환한다. SELECT NVL(salary, 0) FROM employees; 에서 salary가 NULL인 경우 0을 반환 ■ COALESCE는 여러 개의 매개변수를 받고, 그 중 첫 번째로 NULL이 아닌 값을 반환한다. ■ NULLIF두 개의 매개변수를 받아 두 값이 같으면 NULL을 반환하고, 그렇지 않으면 첫 번째 매개변수를 반환한다. SELECT NULLIF(salary, 0) FROM employees; salary가 0일 경우 NULL을 반환한다.
2024.05.20