SQL Server 환경에서,두 개의 많은 문자열 기능은 우리의 처분에 있는LEFT()
및SUBSTRING()
.
이러한 함수는 비슷한 일을하지만 차이점이 있습니다. 이 기사에서는 이러한 기능 간의 주요 차이점 중 일부를 살펴 봅니다.
정의
첫째,그 각각의 기능은:
LEFT()
반환합니다 왼쪽의 문자열로 지정된 문자입니다., SUBSTRING()
는 문자,이진,텍스트 또는 이미지 표현식의 일부를 반환합니다.
SoLEFT()
는 문자열의 왼쪽 부분 만 반환합니다.
SUBSTRING()
단순히 반품의 일부 식(이에 한정되지 않은 왼쪽 부분이 될 수있는 왼쪽,오른쪽 또는 곳 중에서).
를 들어 1–와 동일한 결과
모두 함수를 반환하는 데 사용할 수 있습니다 특정 문자의 수 있습니다.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
결과:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
그러나LEFT()
더 간결하고 있습니다., 이것은 부분적으로 함수 이름에 문자가 적다는 사실 때문입니다. 그러나 구문 때문이기도합니다. LEFT()
기능을 필요로는 두 개의 인수(표현,그리고 반환할 문자의 수),하는 반면SUBSTRING()
필요한 세 개의 인수(식 출발 위치,그리고 문자 수를 반환에서 시작하는 위치에 있습니다).,
예제 2–하위 문자열이 잘
SUBSTRING()
보다 훨씬 더 나은LEFT()
에 잡는 데이터 중간에서의 문자열입니다. 실제로 왼쪽은 그것을 위해 설계되지 않았습니다. 당신이 정말로 원하는 사용하는LEFT()
이렇게하려면,당신이 할 필요가 일부는 속임수 등을 사용하는RIGHT()
기능으로 첫 번째 인수로 합니다.,
예:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
결과:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
허용 데이터의 유형
LEFT()
기능을 허용하지 않는 텍스트 및원하는 데이터 형식으로 첫 번째 인수로 합니다. Varchar 또는 nvarchar 로 변환 할 수있는 다른 모든 데이터 유형을 지원합니다. 반면에
SUBSTRING()
함수는 문자,이진,텍스트,ntext 및 이미지 표현식을 허용합니다.,
반환 값
LEFT()
반환 varchar 을 때 첫 번째 인수 비는 유니코드 문자 데이터 입력,그리고 이며 때 그것은 유니코드 문자 데이터를 입력합니다.,
The return values for SUBSTRING()
are as follows:
Expression (first argument) | Return type |
---|---|
char/varchar/text | varchar |
nchar/nvarchar/ntext | nvarchar |
binary/varbinary/image | varbinary |