목록Language/SQL (31)
eunzae's develog
-- 수정일: 2021.04.03. / 수정자: 신은재 , cast( case when 생일 is null or 기준일 is null or 생일 > 기준일 then null else case when date_part('day', 기준일 - add_months(생일, trunc(months_between(기준일, 생일)))) < 0 then (extract(year from 기준일) - extract(year from 생일)) - 1 else extract(year from 기준일) - extract(year from 생일) end end as NUMERIC(4,1) ) as 만나이컬럼명 -- 만나이 만나이계산 쿼리입니다. 문제 시 의견주세요. ㅎㅎ

TCL: 트랜잭션 제어어 - COMMIT: 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것 - ROLLBACK: 트랜잭션 시작 이전의 상태로 되돌리는 것 - SAVEPOINT: 저장점 해당 테이블에 데이터의 변경을 발생시키는 입력(INSERT), 수정(UPDATE), 삭제(DELETE) 수행시 그 변경되는 데이터의 무결성을 보장하는 것이 커밋(COMMIT)과 롤백(ROLLBACK)의 목적이다. Oracle의 트랜잭션은 트랜잭션의 대상이 되는 SQL 문장을 실행하면 자동으로 시작되고, COMMIT 또는 ROLLBACK을 실행한 시점에서 종료된다. 단, 다음의 경우에는 COMMIT과 ROLLBACK을 실행하지 않아도 자동으로 트랜잭션이 종료된다. - CREATE, ALTER, DROP, RENAME, ..

트랜잭션의 격리성은, 일관성과 마찬가지로 Lock을 강하게 오래 유지할수록 강화되고, Lock을 최소화할수록 약화된다. 낮은 단계의 격리성 수준에서 발생하는 현상 serializable transection1 → insert transection2 → insert 두 트랜잭션 동시에 수행 시 !err: Deadlock Read uncommitted transection1 → insert (Commit 하지 않은 상태) transectrion2 → read(데이터 읽음) Commit 되지 않은 데이터를 읽음 → 만약 Rollback 시 존재하지 않은 데이터를 읽은 것 Dirty read Read committed(주로 사용) transection1 → update (Commit 하지 않은 상태) trans..

A(Atomicity): 원자성 - SQL문 전체를 실행하거나 그 문의 어떤 부분도 실행하지 않거나 C(Consistency): 일관성 - 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효 I(Isolation): 독립성 - 모든 트랜잭션은 다른 트랜잭션으로부터 독립 D(Durability): 지속성 - 영원히 반영된, 트랜잭션에 대한 로그가 남아야하는 성질 Reference https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=2&mod=document&keyword=%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98&uid=340
CASE WHEN REGEXP_REPLACE( 컬럼명, '(^[[:space:]]*|[[:space:]]*$)', '', '' ) = '' THEN NULL ELSE REGEXP_REPLACE( 컬럼명, '(^[[:space:]]*|[[:space:]]*$)', '', '' ) END as 컬럼명_NEW
case when 절 이용한 데이터 정제 CASE WHEN 컬럼명 IS NULL THEN NULL WHEN 컬럼명 LIKE '%0%' THEN 'None' WHEN 컬럼명 LIKE '%1%' THEN 'Grade1' WHEN 컬럼명 LIKE '%2%' THEN 'Grade2' WHEN 컬럼명 LIKE '%3%' THEN 'Grade3' WHEN 컬럼명 LIKE '%4%' THEN 'Grade4' ELSE 'None' END as 컬럼명_NEW
select row_number() over(partition by 행기준칼럼 order by 정렬기준칼럼) from 테이블명 활용: 가장 최신 버전의 ICD 단어사전을 매핑 -- 진단 -- 수정일: 2021.04.03. / 수정자: 신은재 select /*생략*/ , A.DISS_CD as DISS_CD -- 질병코드(ICD-10th) , V1.ICD_10_NM as DISS_ENM -- 질병영문명(ICD-10th) , V2.ICD_10_NM as DISS_KNM -- 질병한글명(ICD-10th) from 진단테이블 A -- 진단관리 /*생략*/ left outer join ( select ICD_10_CD , ICD_10_NM , ROW_NUMBER() OVER(PARTITION BY ICD_10 O..
with z1 as( SELECT regexp_extract(A.ARY,'[^,]+', 1, cast(c.cnt as int),'u') as ACT_CD FROM (SELECT regexp_REPLACE(ARRAY_COMBINE(regexp_extract_all(액팅정보컬럼, '(\)|\:\d\d)\/[가-힣A-Z\s?!+-]','u'), ','), '\)\/|\:\d\d\/', '','u') as ARY FROM 투약테이블 ) A cross join (SELECT row_number () OVER (order by 1) as cnt FROM (SELECT 1 FROM (SELECT regexp_REPLACE(ARRAY_COMBINE(regexp_extract_all(액팅정보컬럼, '(\)|\:\d\d)..
-- 쿼리 select SUBSTR(T.TABLENAME,1,2) , case SUBSTR(T.tablename,1,2) when 'CC' THEN '코드정보' when 'MR' THEN '의무기록' when 'PE' THEN '처방 및 결과' when 'PT' THEN '환자' when 'RG' THEN '내원' when 'TA' THEN '비정형' else null end as SUBSTRDESC , T.TABLENAME , T.DESCRIPTION , C.ATTNAME , C.DESCRIPTION from CRDW.._v_table T INNER JOIN crdw.._v_relation_column C on T.tablename = C.name and T.objtype like 'TABLE' whe..