[MSSQL] 문자열 길이 구하기 (LEN, DATALENGTH)

SQL Server에서 문자열의 길이를 구하기 위해서는 LEN 함수와 DATALENGTH 함수를 사용하면 된다. LEN 함수는 한글이든 영문이든 모든 문자를 글자 단위로 1자씩 계산하며, DATALENGTH 함수는 문자열이 실제로 차지하는 바이트 수를 반환한다. 두 가지 함수를 사용할 때 주의해야 할 부분도 있으니 아래를 참고하면 된다.

 

목차

 

LEN, DATALENGTH 함수 기본 사용법

SELECT LEN('SQL Server')        AS [LEN]
     , DATALENGTH('SQL Server') AS [DATALENGTH]

 

 

LEN('SQL Server') → 10자

LEN 함수는 한글이든 영문이든 모든 문자를 글자 단위로 1자씩 계산한다.

 

DATALENGTH('SQL Server') → 10바이트

DATALENGTH 함수는 문자열이 실제로 차지하는 바이트 수를 계산한다.

※ ASCII 문자(영문, 숫자, 특수문자) : 1바이트, 유니코드(한글, 일본어, 한자 등) : 2바이트

 

SELECT LEN('데이터베이스')        AS [LEN]
     , DATALENGTH('데이터베이스') AS [DATALENGTH]

 

 

LEN('데이터베이스') → 6자

한글(유니코드 문자)도 1자로 계산되는 것을 확인할 수 있다.

 

DATALENGTH(' 데이터베이스 ') → 12바이트

한글(유니코드 문자)은 2바이트로 계산되는 것을 확인할 수 있다.

 

LEN, DATALENGTH 함수 사용 시 주의사항

SELECT LEN('SQL Server')   AS result1
     , LEN('  SQL Server') AS result2
     , LEN('SQL Server  ') AS result3

 

 

문자열의 중간, 앞쪽 공백은 길이에 포함되지만, 문자열의 끝 공백은 길이에 포함되지 않는다는 점에 유의하자.

 

SELECT DATALENGTH('SQL Server')  AS result1
     , DATALENGTH(N'SQL Server') AS result2

 

 

데이터 타입에 따라 VARCHAR는 1바이트, NVARCHAR는 2바이트로 계산될 수 있다는 점에 유의하자.

※ 테이블 칼럼의 데이터 타입이 NVARCHAR인 경우 유의해서 사용

 

 

댓글

Designed by JB FACTORY