一尘不染

修剪任何前导或尾随字符

sql

我有一个表,其中有一些原始数据。我的要求是在给定的字符串列中修剪任何前导或尾随空格和运算符。运算符的示例包括+ - . > < = : ;"

例子:

+Payment 应修整为Payment
->300 Write应修整为300 Write


阅读 186

收藏
2021-05-16

共1个答案

一尘不染

您可以尝试以下方法:

DECLARE @tbl TABLE(YourString VARCHAR(100));
INSERT INTO @tbl VALUES('+Payment'),('->300 Write'),('-:<Test,:%');

SELECT SUBSTRING(YourString,A.posFirst,A.posLast-A.posFirst+2)
FROM @tbl 
OUTER APPLY(SELECT PATINDEX('%[a-zA-Z0-9]%',YourString) AS posFirst
                  ,LEN(YourString)-PATINDEX('%[a-zA-Z0-9]%',REVERSE(YourString)) AS posLast) AS A

结果

Payment
300 Write
Test

您可以向模式添加任何允许的字符…

2021-05-16