如何删除开头和结尾字符(如果这些字符在 SQL Server 中'0')



我当前有一个名为 DATA的表,它的条目如下:

abc000
ab000cde
000abc

我只想从开始和结尾删除所有0。如果0在角色之间,则将保持不变。

这也适用于同时领导和落后零:

declare @s varchar(15) = '00abc00efg000'
select substring(@s, 
                 patindex('%[^0]%', @s), 
                 len(@s)-patindex('%[^0]%', reverse(@s))-patindex('%[^0]%', @s)+2);

描述:这是从第一个非零符号到反向字符串中的第一个非零符号的子字符串。

说您的数据存在于列中,称为 Col1,那么此表达式应执行

select CASE 
           WHEN RIGHT(col1 , 1) = '0'
           THEN SUBSTRING(col1,0,PATINDEX('%[A-Z1-9]%',REVERSE(col1)))
           WHEN LEFT(col1 , 1) = '0'
           THEN SUBSTRING(col1,PATINDEX('%[A-Z1-9]%',col1),LEN(col1))
           ELSE 
            Col1 
        END AS 'ParsedCol1'
FROM Data

我使用此技巧:

SELECT 
    REPLACE(REPLACE(RTRIM(LTRIM(REPLACE(REPLACE(col1, ' ', CHAR(8)), '0', ' '))), ' ', '0'), CHAR(8), ' ')
FROM 
    yourTable

这可能适用于SQL,因为这删除了领先&从您的字符串中尾随" 000"。

SELECT TRIM(BOTH ‘000’ FROM    
‘your_data_table_column’);

请参阅更多

http://www.mydigitallife.info/remove-or-trim-first-first-first-first-few-characters-in-mysql-database-with-sql/

http://www.w3resource.com/mysql/string-functions/mysql-trim-function.php

最新更新