문자열의 길이를 출력하는 함수들에 대해 포스팅하겠습니다
MySQL의 CHAR_LENGTH 및 LENGTH함수를 설명할 예정입니다.
Oracle과 MSSQL에도 같은 기능을 하되 이름만 다른 함수가 있습니다.
DBMS가 다른 경우 이름만 바꿔 사용하시면 됩니다.
LENGTH()
MySQL - LENGTH()
ORACLE - LENGTHB()
MSSQL - DATALENGTH()
LENGTH( 문자/칼럼 )로 사용하고 길이를 출력합니다
NAME | NAME_KOREAN |
CHEOL SU | 철수 |
JEONG HUN | 정훈 |
SELECT LENGTH(NAME), LENGTH(NAME_KOREAN)
FROM TABLE
- NAME, NAME_KOREAN칼럼의 값들의 길이를 출력합니다
LENGTH(NAME) | LENGTH(NAME_KOREAN) |
8 | 6 |
9 | 6 |
LENGTH(NAME) 에는 띄어쓰기까지 포함해서 8 / 9의 값이 출력이 됐고
LENGTH(NAME_KOREAN) 에는 한글 값이 있었는데 6 값이 출력되었습니다
물론 철수/정훈 은 2글자지만 6 이 출력된 것은
LENGTH함수가 BYTE길이를 가져오기 때문입니다
++ 영문자(1BYTE) 한글은(3BYTE) [ DB캐릭터 셋 방식에 따라 한글의 바이트수는 다를 수 있음 ]
그래서 알파벳은 상관없지만 한글의 철수 경우는 2글자지만 6이 출력되었습니다
BYTE 수를 계산하지 않고 단순히 몇 개의 문자가 있는지 가져올 때
사용하는 함수가 CHAR_LENGTH입니다
CHAR_LENGTH
MySQL - CHAR_LENGTH()
ORACLE - LENGTH()
MSSQL - LEN()
CHAR_LENGTH( 문자/칼럼 ) - 문자/칼럼의 문자 개수를 출력합니다
SELECT CHAR_LENGTH(NAME), CHAR_LENGTH(NAME_KOREAN)
FROM TABLE
- NAME, NAME_KOREAN칼럼의 값들의 문자 개수를 출력합니다
CHAR_LENGTH(NAME) | CHAR_LENGTH(NAME_KOREAN) |
8 | 2 |
9 | 2 |