如何使用tSQL删除字符串的最后一个字符?
在本例中,我只需要删除最后一个字符,即逗号(,) 我尝试了如何使用tSQL删除字符串的最后一个字符?,tsql,Tsql,在本例中,我只需要删除最后一个字符,即逗号(,) 我尝试了子字符串、Left和Right函数,但它们需要字符串长度 以下是场景:- select (Case col1 & 1 When 1 Then 'Case 1,' Else '' End) + (Case Col2 & 2 When 2 Then 'Case 2,' Else '' End) + (Case Col3 & 4 When 4 Then 'Case 4,' Else '' End) as Ca
子字符串、Left和Right
函数,但它们需要字符串长度
以下是场景:-
select
(Case col1 & 1 When 1 Then 'Case 1,' Else '' End) +
(Case Col2 & 2 When 2 Then 'Case 2,' Else '' End) +
(Case Col3 & 4 When 4 Then 'Case 4,' Else '' End)
as Case
from table_01
您可以使用以下公式,即使用长度减去1得到所需的长度:
declare @string varchar(50)
set @string = 'testing, testing, testing,'
select substring(@string, 1, len(@string) -1)
结果:
testing, testing, testing
编辑:
您可以使用以下选项:
select substring(c, 1, len(c) -1)
from
(
select
(Case When col1 = '1' Then 'Case 1,' Else '' End) +
(Case When Col2 = '2' Then 'Case 2,' Else '' End) +
(Case When Col3 = '4' Then 'Case 4,' Else '' End)
as C
from t
) x
请参见好吧,不要删除最后一个逗号。请删除第一个:
- 使用:
- 使用:
SELECT
STUFF(
(CASE col1 & 1 WHEN 1 THEN ',Case 1' ELSE '' END)
+ (CASE col1 & 2 WHEN 2 THEN ',Case 2' ELSE '' END)
+ (CASE col1 & 4 WHEN 4 THEN ',Case 4' ELSE '' END),
1,
1,
''
) AS [Case]
FROM table_01
SELECT
SUBSTRING(
(CASE col1 & 1 WHEN 1 THEN ',Case 1' ELSE '' END)
+ (CASE col1 & 2 WHEN 2 THEN ',Case 2' ELSE '' END)
+ (CASE col1 & 4 WHEN 4 THEN ',Case 4' ELSE '' END),
2,
999999 /* not necessary to calculate LEN()-1, any value
that is definitely greater than that will do */
) AS [Case]
FROM table_01