SQL 코딩 문법 기초 용어

2023. 5. 18. 00:28SQL 코딩

Upper = 문자를 대문자로 표시한다.

 

Lower = 문자를 소문자로 표시한다.

 

between A and B = A와 B사이의 구간

 

DECODE(A, B, C)

AB값과 일치하면 C값을 출력하고 일치하지 않으면 NULL값을 출력하라.

 

DECODE(A, B, C, D)

AB값과 일치하면 C값을 출력하고 일치하지 않으면 D값을 출력하라.

 

DECODE(A, B, C, D, E)

AB값과 일치하면 C값을 출력하고 AD값과 일치하면 E값을 출력하고 일치하지 않으면 NULL를 출력하라.

 

DECODE(A, B, C, D, E, F)

AB값과 일치하면 C값을 출력하고 AD값과 일치하면 E값을 출력하고 일치하지 않으면 F를 출력하라.

 

Order by 2이런 식으로 하면 테이블에서  번째 컬럼을 기준으로 정렬하겠다 의미.

 

left 왼쪽에서 일부분을 추출하는 . 

right 오른쪽에서 일부분을 추출하는 . 

 

left(A, 5) A에서 앞에  5개를 추출한다. right(B, 5) B에서 오른쪽에서 5개를 추출한다.

 

Replace(A, B, C) A에서 B 있으면 그걸 C 바꿔라.

 

LAST_DAY(:~) 그 달의 마지막 날짜 출력. 오류가 있으면 null을 리턴.

 

Instr함수는 입력된 문자열이 일치하면 그 첫 인덱스 값을 반환하고 아니면 0을 반환한다.

 

NSTR('ABCDEFG','A') "A"         

→ 1 (1 인덱스 값)

 

INSTR('ABCDEFG','A', 1) "A"
→ 3번째 인자는 시작위치인데, 값이 1인 경우에는 생략해도 값을 동일


 INSTR('ABCDEFG','E') "E"

→ 5 (5 인덱스 값)

 

INSTR('ABCDEFG', 'CDE') "CDE"

→ 3 (3 인덱스 값)

 

INSTR('ABCDEFG', 'DBC') "DBC"

→ 0 (일치하는 문자열이 없음)

 

1. INSTR('ABBCCCDDDD', 'C', 5, 2)
(1) 5번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'C' 문자를 찾기시작. 찾았으면 2번째 C를 찾음.
(3) 2번째 C의 인덱스값을 반환: 6

2. INSTR('ABBCCCDDDD', 'C', 6, 2)
(1) 6번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'C' 문자를 찾기시작. 찾았으면 2번째 C를 찾음.
(3) 2번째 C가 존재하지 않으므로 0을 반환.

3. INSTR('ABBCCCDDDD', 'D', 8, 2)
(1) 8번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'D'문자를 찾기시작. 찾았으면 2번째 D를 찾음.
(3) 2번째 D의 인덱스값을 반환: 9

4. INSTR('ABBCCCDDDD', 'D', 3, 2)
(1) 3번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'D'문자를 찾기 시작. 찾았으면 2번째 D를 찾음.
(3) 2번째 D의 인덱스값을 반환: 8
 

5. INSTR('ABBCCCDDDD', 'A', 4, 1)
(1) 4번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'A'문자를 찾기 시작. 찾았으면 1번째 A를 찾음.
(3) 1번째 A가 존재하지 않으므로 0을 반환.

 

6. INSTR('ABBCCCDDDD', 'C', 1, 3)
(1) 1번째부터 시작하는 문장을 추출 -'ABBCCCDDDD'
(2) 'C'문자를 찾기 시작. 찾았으면 3번째 C를 찾음.
(3) 3번째 C의 인덱스값을 반환: 6

 

NVL2(,) Null이 아니면 이 값을 출력하라고 하고 싶을 때 사용한다.

NVL2(A, B, C) A의 값이 null이 아니면 B, null이면 C를 출력한다.

 

Distinct 중복된 걸 제거해줘서 출력. 열의 고유값 출력. 컬럼에 같은 게 여러 개 있어도 하나만 출력함. count할 때 쓰기도.

LAG() 이전 값을 출력, LEAD() 다음 값을 출력한다.

Partition by랑 주로 같이 쓴다.

 

length는 길이를 알고 싶을 때 사용

 

Coalesce( , , , ) null이 아닌 첫 번째 인자 값을 반환한다.

 

Nextval = 증가시키고 싶을 때(시퀀스) / Currval = 시퀀스 현재 값을 알고 싶을 때

 

Alter Sequence 시퀀스이름 Increment BY -2 (증가 시퀀스 수를 -2로 바꾸기)

Sysdate(현재 날짜와 시간)