我有一个表,其中有一些原始数据。我的要求是在给定的字符串列中修剪任何前导或尾随空格和运算符。运算符的示例包括+ - . > < = : ;"
+ - . > < = : ;"
例子:
值+Payment 应修整为Payment 值->300 Write应修整为300 Write
+Payment
Payment
->300 Write
300 Write
您可以尝试以下方法:
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
您可以向模式添加任何允许的字符…