- 특수 문자 %를 검색시

SELECT *

FROM S_EMP

WHERE NAME LIKE '%@%%' ESCAPE '@'

ESCAPE 사용으로 @뒤에 오는 문자를 인식해  %도 검색할 수 있도록 한다.


Posted by 달콤한부자
,

SQL 정리 요약

SQL 관련 2017. 7. 17. 16:34

 ◎ DISTINCT : 중복된 데이터를 제거한다.

- 1개의 칼럼에만 적어도 모든 칼럼에 적용된다. 이로 인행 뜻하지 않은 성능 저하가 발생 할 수 있으니

  주의해서 사용   

 참고: 9I 버전까지는 정렬을 수행해서 심각한 속도 저하가 발생 했으나 10g 버전부터  HASH 알고

 리즘 사용하는 방식으로 변경되어 성능이 많이 향됨

◎ 집합연산자의 4가지 종류

연산자의  종류

내용

 UNION 

두 집합을 더해서 결과를 출력 중복 값 제거하고 정렬

 UNION_ALL

두 집합을 더해서 결과를 출력, 중복 값을 제거 안 하고 정렬 안함

 INTERSECT

두 집합의 교집합 결과를 출력 정렬함

 MINUS

두 집합의 차집합 결과를 출력 정렬함 쿼리의 순서 중요함

- 집합 연산산자 사용에 주의할 사항.

 1) 두집합의 SELECT 절에 오는 컬럼의 개수가 동일 해야함

 2) 칼럼의 데이터 타입이 동일해야함

 3)  두집합의 컬러명이 달라도 사용가능

 

◎ 문자함수

▶ INITCAP - 입력 값의 첫 글짜만 대문자로 변환
   예제) INITCAP('abcd')  결과: Abcd
  
▶ LOWER - 입력 값을 전부 소문자로 변환
   예제) LOWER('ABCD')  결과: abcd

▶ UPPER - 입력 값을 전부 대문자로 변환
   예제) UPPER('abcd')  결과: ABCD
  
▶ LENGTH - 입력된 문자열의 길이를 계산해주는 함수
   예제) LENGTH('한글')  결과: 2

▶ LENGTHB - 입력된 문자열의 길이 바이트값 반환
   예제) LENGTHB('한글')  결과: 4
  
▶ CONCAT - 두 문자열을 결합해서 출력( || 와 동일)
   예제) CONCAT('A','B') 결과: AB

▶ SUBSTR = 문자열에서 특정 길이의 문자를 추출할 때 사용
   예제) SUBSTR('한글',1,2)) 결과: 한    
 
▶ SUBSTRB - 주어진 문자에서 특정 바이트만 추출
   예제) SUBSTRB('한글',1,2)) 결과: 한글      

▶ INSTR - 주어진 문자에서 특정 문자위치 추출
   예제) INSTR('A*B#','#') 결과: 4

▶ INSTRB - 주어진 문자에서 특정 문자 위치 바이트값 추출
   예제) INSTRB('한글로','로') 결과: 5
  
▶ LPAD - 주어진 문자열에서 왼쪽으로 특정 문자를 채움
   예제) LPAD('love.','6,'*')  결과: **love
  
▶ RPAD - 주어진 문자열에서 오른쪽으로 특정 문자를 채움
   예제) RPAD('love.','6,'*')  결과: love**  

▶ LTRIM - 주어진 문자열에서 왼쪽의  특정 문자를 삭제함
   예제) LTRIM('*love'.'*')  결과: love 

▶ RTRIM - 주어진 문자열에서 오른쪽의  특정 문자를 삭제함
   예제) LTRIM('love*'.'*')  결과: love
  
▶ REPLACE- 주어진 열에서 A를 B로 치환함
   예제) REPLACE('AB'.'A','E')  결과: EB

Posted by 달콤한부자
,

날짜 관련 SQL

SQL 관련 2016. 7. 14. 08:42

     SELECT TO_CHAR(SYSDATE,'YYYYMMDD') today,
               TO_CHAR(SYSDATE -1,'YYYYMMDD')  yesterday,
               TO_CHAR(SYSDATE,'MONTH DD, YYYY') yearmonth,
               TO_CHAR(SYSDATE,'YYYY.MM.DD HH24:MI:SS') fullyear,
               TO_CHAR(SYSDATE,'MONTH')  month,
               TO_CHAR(SYSDATE,'MON')    mon,
               TO_CHAR(SYSDATE,'DAY')    daykor ,
               TO_CHAR(SYSDATE,'DY')     daykor1,
               TO_CHAR(SYSDATE,'A.M.')   am,
               TO_CHAR(SYSDATE,'HH')     hh,
               TO_CHAR(SYSDATE,'MI')     mi,
               TO_CHAR(SYSDATE,'SS')     ss,
               TO_CHAR(SYSDATE,'YYYYMM')||'01'  startyear,
               TO_CHAR(LAST_DAY(SYSDATE),'YYYYMMDD')  lastday,
               TO_CHAR(SYSDATE -7,'YYYYMMDD')         lastweek,
               TO_CHAR(SYSDATE +7,'YYYYMMDD')         nextweek,
               TO_CHAR(SYSDATE -14,'YYYYMMDD')        twolast,
               TO_CHAR(SYSDATE +14,'YYYYMMDD')        twonext,
               TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYYMMDD')  lastmonth,
               TO_CHAR(ADD_MONTHS(SYSDATE,-2),'YYYYMMDD')  twolastmon,
               TO_CHAR(ADD_MONTHS(SYSDATE,-3),'YYYYMMDD')  threelastmon,
               TO_CHAR(ADD_MONTHS(SYSDATE,1),'YYYYMMDD')   nextmonth,
               TO_CHAR(ADD_MONTHS(SYSDATE,1)-1,'YYYYMMDD') yesterday,
               TO_CHAR(ADD_MONTHS(SYSDATE,-12),'YYYYMMDD') lastyear,
               TO_CHAR(ADD_MONTHS(SYSDATE,12),'YYYYMMDD')  nextyear,
               TO_CHAR(SYSDATE,'YYYYMMDDHHMISS')           fulltime,
               TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')         fulltime1,
               TO_CHAR(SYSDATE +7,'YYYYMMDDHH24MISS')      ,
               TO_CHAR(SYSDATE,'YYYY/MM/DD')               ,
               TO_CHAR(SYSDATE+1,'YYYYMMDDHHMISS')         ,
               TO_CHAR(SYSDATE,'YYYY')||'01'||'01'         startday1,
               TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-1)||'01'||'01' lastyearstartday,
               TO_CHAR(SYSDATE,'YYYY')||'12'||'31'     lastday,
               TO_CHAR(SYSDATE,'YYYY')                 year,
               SUBSTR(TO_CHAR(SYSDATE,'YYYY'),2,3)     year,
               to_char(add_months(sysdate,-11),'YYYYMMDD') last11mon
       FROM DUAL;

Posted by 달콤한부자
,