본문 바로가기

[ Developer ]189

[SQL] LPAD & RPAD DB 값 양식 맞춰 채우기 SQL - LPAD & RPAD 1~12를 오름차순으로 정렬한다면 1 2 3 4 5 6 7 8 ... 11 12로 정렬이 될 것이다 하지만 입력된 것이 숫자가 아닌 문자로 입력 되었다면 1 10 11 12 2 3 4 .. 9 가 출력이 된다 그렇기 때문에 문자라면 앞에 0을 붙여줘야하는데 그러한 기능을 해주는 것이 LPAD이다 자리수를 입력하면 그 자리수가 될 때 까지 0을 계속 붙여주는 역할을 한다 그와 반대로 RPAD는 오른쪽에서부터 0이 붙는다 2016. 5. 19.
[SQL] CASE WHEN ELSE 쿼리 분기시키기 SQL - CASE WHEN ELSE SQL에서 Switch Case와 같이 사용되는 것으로 이전에 공부한 DECODE와 비슷하다고 볼 수 있다 하지만 DECODE는 지정한 값을 특정한 값으로 출력이 가능하지만 나머지 조건에 대해서 출력을 할 수 없다 CAE WHEN ELSE는 ELSE를 통해서 지정한 조건 외 나머지 값들을 출력이 가능하다 아래의 예제로 살펴본다 기본적으로 HR 계정에서 정보를 출력할 때 JOB_ID 별로 A, B, C, D, E 그리고 나머지는 0을 출력하고 싶다면 아래와 같이 CASE WHEN ELSE를 사용하면 된다 CASE로 비교할 컬럼명을 적고 WHEN으로 조건 THEN으로 값을 적어준다 switch case와 비슷하다 CASE WHEN ELSE는 사용자가 원하는데로 사용이 가.. 2016. 5. 19.
[SQL] DECODE 쿼리에서 특정값으로 출력하기 SQL - DECODE DECODE는 Oracle에서만 지원되는 키워드이다 특정 컬럼의 값을 기준으로 IF문처럼 사용이 가능하다 지정할 값이 'A'이면 '에이' 출력 'B'면 '비' 출력과 같이 값에 따라서 원하는 정보로 출력을 할 수 있다 아래의 예제로 살펴본다 (Oracle HR 계정 사용) # SQL 13번 DECODE는 '조건1', '1 참인경우', '조건2', '2 참인경우', '...', 'FALSE' 여기서 B인 사람만 출력하고 싶다면 다음과 같이 별칭과 뷰을 이용해야 한다 WHERE 절에는 뷰나 프롬에서 오는 것만 작성 가능하다 DECODE는 조건일 때 어떠한 값을 보여주지만 CASE WHEN ELSE는 CASE일 때 쿼리도 작성이 가능하다 2016. 5. 15.
[SQL] EXIST 값 존재하는지 검색 쿼리 SQL - EXISTS 값이 존재하는지 없는지에 대한 키워드 존재한다면 값을 가져오고 없다면 가져오지 않는다 EXISTS 앞에 NOT을 붙이면 없는 컬럼이 나온다 # SQL 35번 값을 가지지 않은 부서를 출력하고 싶다면 아래와 같이 서브 쿼리를 작성할 때 NOT EXISTS를 작성한다 응용해서 ST_CLERK를 갖는 부서를 찾고 싶다면 EXISTS로 작성을 하면 된다 # EXISTS 흐름도 10 ~ 110까지의 전체적인 DEPARTMENT_ID가 존재 (NULL이 아닌 값) EMPLOYEES E에서 서브 쿼리 안의 E.DEPARTMENT_ID로 값 전달 순차적으로 넘어 오면서 E1.DEPARTMENT_ID (같은값)에서 비교 비교되는 즉 순차적인 부서 번호와 같은 부서 번호를 갖는 로우 검사 JOB_I.. 2016. 5. 15.