SQL 문자열 길이 출력 함수 - LENGTH / CHAR_LENGTH / LEN / DATALENGTH / LENGTHB

문자열의 길이를 출력하는 함수들에 대해 포스팅하겠습니다

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