DB 24

[SQL] where절 1=0 (false) 사용예제

WHERE 1=0은 항상 거짓을 의미한다. 1. WHERE 절의 OR 구문 결과값이 아무것도 없는 상태에서 OR 구문으로 결과를 하나씩 하나씩 추가 SELECT * FROM A WHERE 1=0 OR 조건문 2. A테이블과 B테이블의 컬럼이 다른 경우 1=1 true 의미 / 1=0,1=2 false 의미 SELECT * FROM A WHERE 1=1 AND 조건문 AND 조건문 UNION ALL SELECT * FROM B WHERE 1=1 AND 조건문 AND 1=0 참고 : [쿼리문] 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 프로젝트를 진행할 때 SQL 쿼리를 작성하다보면 'WHERE 1 = 1' 이라는 것을 자주 보게 됩니다. 사실, 의미없이 'WHERE 1 ..

DB 2021.07.09

[Oracle] 다중 LIKE OR / REGEXP_LIKE // IN

1. LIKE OR 사용 LIKE를 사용하여 다중으로 검색하기 위해서는 OR 연산자를 사용한다. WHERE COD_CDE LIKE 'AAA011' AND COD_YER LIKE '2018' WHERE (COD_CDE LIKE 'AAA011' OR COD_YER LIKE 2018) 2. REGEXP_LIKE 정규식 사용 (오라클 10g부터 사용) REGEXP_LIKE - 단순한 LIKE를 넘어 정규식 일치를 수행하는 데 사용 WHERE REGEXP_LIKE(COD_CDE, 'AAA011|AAA017|AAA018') 3. IN절 사용 WHERE COD_CDE IN ('AAA011','AAA017','AAA018')

DB 2021.06.29

[Oracle] ORA-01481: 숫자 형식 모델이 부적합합니다

ORA-01481: 숫자 형식 모델이 부적합합니다 01481. 00000 - "invalid number format model" *Cause: The user is attempting to either convert a number to a string via TO_CHAR or a string to a number via TO_NUMBER and has supplied an invalid number format model parameter. *Action: Consult your manual. 원인 : CHAR 형식이 아니고 NUMBER 형식으로 인식되어서 해결 : TO_CHAR 함수로 CHAR 형식으로 변경 TO_CHAR(TO_DATE(re_date, 'yyyymmdd'),'yyyy') AS re..

DB 2021.06.02

[Oracle] DECODE 와 CASE 비교

DECODE 함수 DECODE는 프로그래밍 언어에서 사용하는 IF~ ELSE문과 같은 기능을 하는 SQL 함수이다. DECODE 함수는 Oracle에서 제공하는 조건 비교 함수 = 다른 SQL은 사용이 불가하다. DECODE 함수는 조건값과 같은지의 여부만 확인, 즉 동등 비교만 할 수 있다. DECODE 함수는 조건이 255개까지만 사용 가능하다. DECODE( {대상}, {비교 값 1}, {결괏값 1}, {비교 값 2}, {결괏값 2}, ... , {비교 값 N}, {결괏값 N}, {나머지 값} ) CASE 구문 CASE문은 어느 SQL이나 사용 가능하다. CASE문에서는 WHEN 이후에 조건문을 작성, DECODE 보다 확장된 기능 (조건 비교가 가능)을 제공한다. CASE문은 DECODE 보다 좀..

DB 2021.05.27

[Oracle] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음

ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 01861. 00000 - "literal does not match format string" *Cause: Literals in the input must be the same length as literals in the format string (with the exception of leading whitespace). If the "FX" modifier has been toggled on, the literal must match exactly, with no extra whitespace. *Action: Correct the format string to match the literal. 원인 DATE 타입에 String형의 문자열..

DB 2021.05.25

[Oracle] PIVOT 사용하기

* PIVOT - 행을 열로 변환할 때 사용하는 방법으로, 기존 GROUP BY와 집계 함수(MAX, SUM 등), DECODE를 사용하는 방법을 대체. - 코드가 간결해지는 장점이 있다. PIVOT 기본 문법 SELECT 컬럼 FROM (조회할 데이터 select문) on 테이블 PIVOT ( 집계함수(표현식) FOR pivot대상컬럼 IN (컬럼으로 사용할 row 값 = 행으로 올릴 row) ); PIVOT 절 : 그룹 함수(GROUP BY)가 적용된 컬럼을 정의 GROUP BY가 들어간 쿼리에서 SELECT SUM(CNT),AVC(CNT) 구절과 같다. PIVOT FOR 절 : PIVOT의 기준이 되는 컬럼을 정의 GROUP BY절에 뒤따르는 컬럼과 같은 역할을 한다. PIVOT IN 절 : PIV..

DB 2021.05.25

[Oracle] 오라클 버전 및 에디션 정보 확인

Oracle 11g 이상 PIVOT함수를 사용할 수 있기에 현재 사용중인 오라클 버전을 알아보려고 한다. 1. SELECT * FROM v$version; SELECT * FROM v$version; Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production "CORE11.2.0.1.0Production" TNS for 64-bit Windows: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production 2. cmd 창 - sqlplus "/as sysdba" sqlplus "/as sys..

DB 2021.05.21