在這篇《前導或後導字元串》https://www.cnblogs.com/insus/p/10842839.html 中。是為字元串使用前導來補充字元串,令其長度一致。 相反,如果我們把帶有前導零的字元串,去除這些前導的零。我們又需要怎樣處理呢? SET ANSI_NULLS ON GO SET Q ...
在這篇《前導或後導字元串》https://www.cnblogs.com/insus/p/10842839.html
中。是為字元串使用前導來補充字元串,令其長度一致。
相反,如果我們把帶有前導零的字元串,去除這些前導的零。我們又需要怎樣處理呢?
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Insus.NET -- Create date: 2019-05-13 -- Update date: 2019-05-13 -- Description: 刪除字元串前導的零 -- ============================================= CREATE FUNCTION [dbo].[svf_TrimLeadingZero] ( @InputString NVARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @position INT = 1, @len INT = LEN(@InputString) DECLARE @trimString NVARCHAR(MAX) = SUBSTRING(@InputString,@position, @len) WHILE @position <= @len BEGIN DECLARE @d NVARCHAR(2) = SUBSTRING(@InputString, @position, 1) IF LEN(ISNULL(@d,N'')) > 0 AND (@d LIKE '%[^0-9]%' OR @d > 0) BEGIN SET @trimString = SUBSTRING(@InputString,@position, @len) BREAK; END SET @position = @position + 1 END RETURN @trimString END GOSource Code
列舉幾個實例: