T-SQL에서 문자열의 마지막 문자를 제거 하시겠습니까?
에서 문자열의 마지막 문자를 어떻게 제거 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 ... 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)
당신의 coloumn이 text
아닌 varchar
경우 다음을 사용할 수 있습니다.
SELECT SUBSTRING(@String, 1, NULLIF(DATALENGTH(@String)-1,-1))
이 작업을 REVERSE-STUFF-REVERSE의 3 단계가 아닌 2 단계로 수행하려면 목록 구분 기호를 1 ~ 2 개의 공백으로 만들 수 있습니다. 그런 다음 RTRIM을 사용하여 후행 공백을 자르고 REPLACE를 사용하여 이중 공백을 ','
select REPLACE(RTRIM('a b c d '),' ', ', ')
그러나 원래 문자열에 내부 공간이 포함될 수 있으면 이것은 좋지 않습니다.
성능이 확실하지 않습니다. 각 REVERSE는 문자열의 새 사본을 작성하지만 STUFF는 REPLACE보다 세 번째 빠릅니다.
또한 이것을보십시오
@result = substring(@result, 1, (LEN(@result)-1))
나는 이것을 -hack-;) 제안 할 수있다.
select
left(txt, abs(len(txt + ',') - 2))
from
t;
소스 텍스트 / var은 null이거나 비어있을 수 있습니다.
역 선택 (SUBSTRING (REVERSE (@a), 2, 9999))
당신은 기능을 만들 수 있습니다
CREATE FUNCTION [dbo].[TRUNCRIGHT] (@string NVARCHAR(max), @len int = 1)
RETURNS NVARCHAR(max)
AS
BEGIN
IF LEN(@string)<@len
RETURN ''
RETURN LEFT(@string, LEN(@string) - @len)
END
이 시도
DECLARE @String VARCHAR(100)
SET @String = 'TEST STRING'
SELECT LEFT(@String, LEN(@String) - 1) AS MyTrimmedColumn
마지막 캐릭터를 얻으십시오
Right(@string, len(@String) - (len(@String) - 1))
내 대답은 허용되는 대답과 비슷하지만 Null 및 Empty String도 확인합니다.
DECLARE @String VARCHAR(100)
SET @String = 'asdfsdf1'
-- If string is null return null, else if string is empty return as it is, else 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
I love @bill-hoenig 's answer; however, I was using a subquery and I got caught up because the REVERSE function needed two sets of parentheses. Took me a while to figure that one out!
SELECT
-- Return comma delimited list of all payment reasons for this Visit
REVERSE(STUFF(REVERSE((
SELECT DISTINCT
CAST(CONVERT(varchar, r1.CodeID) + ' - ' + c.Name + ', ' AS VARCHAR(MAX))
FROM VisitReason r1
LEFT JOIN ReasonCode c ON c.ID = r1.ReasonCodeID
WHERE p.ID = r1.PaymentID
FOR XML PATH('')
)), 1, 2, '')) ReasonCode
FROM Payments p
To update the record by trimming the last N characters of a particular column:
UPDATE tablename SET columnName = LEFT(columnName , LEN(columnName )-N) where clause
Try It :
DECLARE @String NVARCHAR(100)
SET @String = '12354851'
SELECT LEFT(@String, NULLIF(LEN(@String)-1,-1))
declare @string varchar(20)= 'TEST STRING'
Select left(@string, len(@string)-1) as Tada
output:
Tada
--------------------
TEST STRIN
Try this,
DECLARE @name NVARCHAR(MAX) SET @name='xxxxTHAMIZHMANI****'SELECT Substring(@name, 5, (len(@name)-8)) as UserNames
And the output will be like, THAMIZHMANI
declare @x varchar(20),@y varchar(20)
select @x='sam'
select
case when @x is null then @y
when @y is null then @x
else @x+','+@y
end
go
declare @x varchar(20),@y varchar(20)
select @x='sam'
--,@y='john'
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@x + ', ' ,'') +coalesce(@y+',','')
SELECT left(@listStr,len(@listStr)-1)
참고URL : https://stackoverflow.com/questions/1256915/remove-the-last-character-in-a-string-in-t-sql
'Programing' 카테고리의 다른 글
데이터베이스의 MongoDB 덤프를 어떻게 만듭니 까? (0) | 2020.06.28 |
---|---|
Resharper 4.x 이상 비활성화 및 제거 (0) | 2020.06.28 |
연관 PHP 배열에서 첫 번째 항목을 얻는 방법은 무엇입니까? (0) | 2020.06.28 |
안드로이드의 ViewPager에서 조각 페이지 제거 (0) | 2020.06.28 |
Android의 ImageButton에 이미지 맞추기 (0) | 2020.06.28 |