단일행함수 : 문자함수
SQL함수에는 두가지 유형이 있다.
단일행함수종류
단일행함수는 총 5가지이다.
문자함수
문자함수는 크게 변환함수와 문자 조작 함수로 나누어진다.
http://egloos.zum.com/pqowieuryt/v/18776
대소문자 변환함수
변환함수는 총 3가지가 있다.
대소문자를 변환한다.
기능 | 결과 |
---|---|
LOWER(‘SQL Course’) | sql course |
UPPER(‘SQL Course’) | SQL COURSE |
INITCAP(‘SQL Course’) | Sql Course |
문자조작함수
concat(expr1, expr2)
concat은 인수를 2개밖에 못 받는다.
만약 2개초과로 쓰고싶다면 concat을 중첩해서 사용해야한다.
예를 들어 last_name과 first_name을 합쳐서 full_name을 만들고싶다
concat이용한 구문과 연결연산자 이용한 구문의 출력값은 같다.
차이점은 concatl은 인수2개만 가능하고 연결연산자는 원하는만큼의 인수를 사용할 수 있다
1 | //concat이용한 구문 |
이때 last_name과 first_name 사이에 공백 한칸을 넣고싶다
그래서 처음에는 아래 코드를 작성했다.
1 | $ select concat(last_name, ' ', first_name) as full_name |
위 코드처럼 했더니 invalid number of arguments
에러가 떴다.
즉, concat은 인수를 2개밖에 못 받기때문에 3개를 쓰려면 중첩
해야한다.
substr(expr1, expr2, expr3)
문자열의 일부분을 반환해주는 함수이다.
- expr1 : 반환할 문자열
- expr2 : 시작위치
- 음수인 경우 뒤에서 시작위치 ex)-1이면 뒤에서 첫번째글자
- expr3 : 반환할 문자갯수
- 방향은 항상 왼쪽에서 오른쪽으로 문자갯수만큼 반환한다
- 생략가능 : 생략되면 시작위치에서 끝까지 반환
주로 주민번호(770123-2123456)를 반환할때 사용한다.
instr(expr1, expr2)
문자열(expr1)로 부터 특정 문자(expr2)의 첫번째 위치값을 반환해주는 함수이다.
아래 문자열에는 o가 2개가 있다. 5번째와 7번째에 있는데 어느 값을 반환해줄까?
instr는 첫번째 위치값만 반환해준다.
lpad(expr1, expr2, expr3) 와 rpad(expr1, expr2, expr3)
오른쪽 정렬/왼쪽 정렬 해주는 함수
- expr1 : 반환할 문자열
- expr2 : 전체자리수
- expr3 : 남는 공간을 채울 문자
- 공백을 주면 오른쪽/왼쪽정렬을 표현할 수 있어 유용하다.
trim(expr1 from expr2)
문자열(expr2)로부터 특정 문자(expr1)가 접두어나 접미어에 있다면 삭제(절단)해주는 함수이다.
(ex1) trim(‘H’ from ‘HHelloHWHorldHHH’) => elloHWHorld
한자리 숫자를 출력하려고 할때 01,02,03 등등으로 출력된다.
이때 0을 빼고 한자리만 출력할때 주로 사용한다.
length(expr1)
문자열의 길이를 반환해주는 함수이다.
replace(expr1, expr2, expr3)
문자열(expr1)로 부터 특정 문자(expr2)를 다른 문자(expr3)로 교체해주는 함수이다.
DB에 폰번호가 .로 저장되어있을때 우리가 보기 편하게 -로 바꿔줄수있다.