SQL Server中的TrimEnd等效项
发布时间:2020-05-24 10:42:10 所属栏目:MsSql 来源:互联网
导读:我有列(Numbers),其值如下: 1,2,31,2,3,1,2,3,,,1,2,3,,,,,, 我想修剪字符串末尾的所有逗号,结果就是这样 1,2,31,2,31,2,31,2,3 我已经尝试过以下查询但是我们只能删除最后一个逗号 DECLARE @String as VARCHAR(50)SET @String=1,2,3,4,,,,,,,,,,,,,,,,SELEC
|
我有列(Numbers),其值如下: 1,2,3 1,3,1, 我想修剪字符串末尾的所有逗号,结果就是这样 1,3 我已经尝试过以下查询但是我们只能删除最后一个逗号 DECLARE @String as VARCHAR(50)
SET @String='1,4,'
SELECT CASE WHEN right(rtrim(@String),1) = ',' then substring(rtrim(@String),len(rtrim(@String))-1)
ELSE @String
END AS TruncString
如何删除字符串末尾的所有逗号? 解决方法你可以这样做:LEFT(Numbers,LEN(Numbers) - (PATINDEX('%[^,]%',REVERSE(Numbers)) - 1))
这样做的前提是你首先使用 REVERSE(Numbers) -->,1 然后,您使用 PATINDEX('%[^,REVERSE(Numbers)) -->,1 = 7
然后你可以使用 一个完整的例子就是 SELECT Numbers,Reversed = REVERSE(Numbers),Position = PATINDEX('%[^,REVERSE(Numbers)),TrimEnd = LEFT(Numbers,REVERSE(Numbers)) - 1))
FROM (VALUES
('1,3'),('1,'),5,(',')
) t (Numbers);
编辑 为了响应编辑,语法中有一些错误,下面的函数可以修剪开始,并修剪逗号的两边: SELECT Numbers,REVERSE(Numbers)) - 1)),TrimStart = SUBSTRING(Numbers,PATINDEX('%[^,Numbers),LEN(Numbers)),TrimBothSide = SUBSTRING(Numbers,LEN(Numbers) -
(PATINDEX('%[^,REVERSE(Numbers)) - 1) -
(PATINDEX('%[^,Numbers) - 1)
)
FROM (VALUES
('1,')
) t (Numbers); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
