문자열에서 마지막 문자를 어떻게 제거 T-SQL
합니까?
예를 들면 다음과 같습니다.
'TEST STRING'
돌려 주다:
'TEST STRIN'
답변
예 :
DECLARE @String VARCHAR(100)
SET @String = 'TEST STRING'
-- Chop off the end character
SET @String =
CASE @String WHEN null THEN null
ELSE (
CASE LEN(@String) WHEN 0 THEN @String
ELSE LEFT(@String, LEN(@String) - 1)
END
) END
SELECT @String
답변
어떤 이유로 열 논리가 복잡한 경우 (… when … then … else … end), 위의 솔루션으로 인해 len () 함수에서 동일한 논리를 반복해야합니다. 동일한 논리를 복제하면 엉망이됩니다. 이것이 사실이라면 이것은 주목할만한 해결책입니다. 이 예는 마지막 원치 않는 쉼표를 제거합니다. 마침내 REVERSE 기능을 사용했습니다.
select reverse(stuff(reverse('a,b,c,d,'), 1, 1, ''))
답변
이 시도:
select substring('test string', 1, (len('test string') - 1))
답변
줄이 비어 있으면
DECLARE @String VARCHAR(100)
SET @String = ''
SELECT LEFT(@String, LEN(@String) - 1)
이 코드는 오류 메시지 ‘하위 문자열 함수에 잘못된 길이 매개 변수가 전달되었습니다’를 발생시킵니다.
이 방법으로 처리 할 수 있습니다.
SELECT LEFT(@String, NULLIF(LEN(@String)-1,-1))
빈 문자열 인 경우 항상 결과를 반환하고 NULL을 반환합니다.
답변
select left('TEST STRING', len('TEST STRING')-1)
답변
소스 텍스트 / var이 null이거나 비어있는 경우에도 작동합니다.
SELECT REVERSE(SUBSTRING(REVERSE(@a), 2, 9999))
답변
당신의 coloumn이 text
아닌 varchar
경우 다음을 사용할 수 있습니다.
SELECT SUBSTRING(@String, 1, NULLIF(DATALENGTH(@String)-1,-1))