개요
MSSQL left 와 right 는 문자열을 자르는 함수입니다. left 는 왼쪽에서, right 는 오른쪽에서 자릅니다.
substring 와 비슷한 기능인데, substring 을 쓰면 인덱스가 1부터였는지 0부터였는지 생각도 하게 되고, 뭔가 타이핑도 좀 더해야 하는 느낌이라, 중간부터 자르는게 아니라 오른쪽이나 왼쪽에서 자르는거라면 left/right 를 많이 사용합니다.
구문
LEFT ( character_expression , integer_expression )
RIGHT ( character_expression , integer_expression )
mssql Left / Right 기본 예제
SELECT LEFT('12345', 2)
, RIGHT('12345', 2)
결과는 아래와 같이 앞에서 두 글자, 뒤에서 두 글자만 잘라서 나옵니다.

그 외 예제
SELECT LEFT('12345', 100)
, LEFT('12345', NULL)
, LEFT(NULL, 100)
, LEFT(NULL, NULL)
, LEFT(' 12345', 4)
, LEFT('12345', 0)
결과는 아래와 같습니다. 파라미터에 NULL 이 들어있어도 별다른 에러가 안나고, 비교적 신경쓸게 적은 함수 입니다.

SELECT LEFT('12345', -2)
하지만 위와 같이 파라미터에 음수가 들어가는 경우는 아래와 같은 에러가 나고, 파라미터 갯수가 부족하면 당연히 에러가 납니다.

실행계획
LEFT 함수가 딱히 실행계획을 볼 건 없는데, 내용을 좀 뜯어보면 아래와 같이 LEFT/RIGHT 를 실행해도 실제로는 SUBSTRING 을 사용하고 있네요. 막연히 그럴것 같다 생각했는데, 실제로 확인하니..
SELECT LEFT(C2, 1)
FROM T

