목록쿼리 (4)
매일 매일 미라클 코딩
NULL관련 함수 NVL(입력, 결과): 입력이 null인 경우 결과값 지정 NULLLIF(값1, 값2) : 값1과 값 2가 동일할 경우 NULL 반환 COALESCE : 각 Row에서 첫번째 NULL이 아닌 값을 반환(NVL 과 비슷 ) SELECT 문장 실행 순서 1) FROM : 발췌 대상 테이블을 참조한다 2) WHERE : 발췌 대산 데이터가 아닌 것은 제거한다 3) GROUP BY : 행들을 소그룹화 한다 4) HAVING : 그룹핑된 값의 조건에 맞는 것만을 출력한다 5) SELECT : 데이터 값을 출력 / 계산한다 6) ORDER BY : 데이터를 정렬한다 JOIN - 일반적으로 join 은 PK와 PK 값의 연관성에 의해 성립된다. - DBMS 옵티마이저는 FROM 절에 나열된 테이블은..
DECODE: if else 문과 같은 기능을 수행하는 함수 ex) DECODE( 컬럼명, '조건1', '결과1', '조건2', '결과2', .... , 해당조건 없을 때 결과[ELSE - 생략가능]) # decode 함수 예시 SELECT emp_cd, DECODE(edmp_cd, 'A', '사원' ,'B', '선임' ,'C', '책임' ,NULL) as emp_job FROM emp_table; CASE WHEN - CASE WHEN 조건 THEN 결과 ELSE 결과 END - 꼭 END 문으로 종료되어야하며, 조건 사이에 컴마(,) 는 들어가지 않음 - 결과에 NULL 이 들어갈 수 없음 # CASE WHEN 문 예시 SELECT emp_cd , CASE WHEN emp_cd = 'A' THEN '..
MERGE INTO 절은 대상테이블에 기준테이블의 특정 키에 해당하는 데이터가 있으면 UPDATE, 없으면 INSERT 할 수 있는 구문 → SEARCH , INSERT, UPDATE 를 하나로 묶은 기능 사용예 MERGE INTO target_table TT --대상테이블 USING ( -- 기준테이블 SELECT col1, col2, col3 FROM source_table ) ST ON ( -- 대상 테이블에서 기준테이블과 비교할 키 TT.col1 = ST.col1 ) --대상테이블에 내가 가진 키가 있을때 UPDATE WHEN MATCHED THEN ( UPDATE SET TT.col2 = ST.col2 ) -- 대상테이블에 내가 가진 키 없을 때 데이터 추가 INSERT WHEN NOT MATC..
https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 이번에 코테 볼 회사가 SQL 이 두문제나 나온다고 해서 급하게 연습해본 SQL 처음엔 잠시 버퍼링이 왔지만, 셀프 조인으로 접근해 쉽게 풀었다. SELECT distinct p1.id, p1.name, p1.host_id FROM places p1, places p2 WHERE p1.host_id = p2.hos..