목록DB/Oracle (37)
IT'S YU
NVL, NVL2 사용법 및 차이 데이터 처리를 할때 NULL 처리는 항상 중요합니다. 이런 NULL 데이터 처리를 간편하게 하기위해 오라클(oracle)에서는 NLV 함수를 제공하고 있습니다. 오라을 외 다른 데이터베이스에서는 nvl 사용이 불가능 합니다. 1. NVL 함수 [ NVL( 대상 , null인 경우 값 ) ] 대상의 값이 NULL 인 경우 지정한 값으로 치환합니다. 모든 데이터 타입에 적용이 가능합니다. ex ) select nvl(GOODS_QTY, 0) from GOODS; -> GOODS테이블에 GOODS_QTY가 null 일 경우 0으로 치환 2. NVL2 함수 [ NVL2( 대상, null 아닌경우 값, null인 경우 값 ) ] 대상의 값이 NULL 인 경우와 NULL이 아닌경우..
컬럼 A와 컬럼 B를 한 컬럼에 이어붙이기 1) 첫번째 방법 시도,, CASE WHEN 구문을 사용해서 아래 쿼리로 사용하려고 했으나 일관성 없는 데이터 유형 CLOB이라는 오류가 뜸 SELECT CASE WHEN A IS NOT NULL AND B IS NOT NULL THEN A || ',' || B WHEN A IS NOT NULL AND B IS NULL THEN A WHEN A IS NULL AND B IS NOT NULL THEN B WHEN A IS NULL AND B IS NULL THEN '' ELSE '' END FROM TEST ; 2) 두번째 방법 시도,, CONCAT(CONCAT(A, ','), B) 또는 A || ',' || B를 사용하면 A와 B 중 NULL인 경우가 있으면 ,..

Chapter 1. WHERE 1=1이 뭐야?? 우선, WHERE는 조회하려는 데이터들의 조건을 거는 문법이에요. 1 = 1은 말그대로 참을 의미해요. 그럼 위 쿼리를 아래와 같이 바꿀 수 있죠. 해석해보면, CUSTOMERID가 '3'인 데이터들을 모두(참) 조회한다. 즉, 1=1이란 조건은 있으나마나 한 조건이라는 의미죠. Chapter2. 그렇다면 왜 WHERE 1=1절을 쓸까? ① 쿼리 디버깅 시, 주석처리가 편하다. 아래와 같은 쿼리가 있다고 하죠. 저는 COMPANYNAME LIKE 'L%'인 데이터가 잘 조회되는지 확인하기 위해 CUSTOMERID = '3'인 조건행을 잠시 주석처리하고 싶어요. 그럼 아래와 같이 처리하겠죠. 흠.. 저는 주석을 두번이나 달아야해서 좀 귀찮네요. 여기서 WHE..
원하는 문을 블록 처리한 후 'ctrl + /' 클릭