计算字符串尾部空格长度
如下面一串字符串:
DECLARE @str NVARCHAR(MAX) = N'Insus.NET '
为了计算得到字符串尾的空格长度,得先了解2个函数,LEN()和REVERSE(),
LEN()函数返回文本字段中值的长度,这个函数,它包含字符串头部所有空格长度,但不包含字符串尾部所有空格。
另一个函数REVERSE()是将整个字符进行反转,'abcdef' --> 'fedcba'。
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Insus.NET -- Create date: 2019-05-25 -- Update date: 2019-05-25 -- Description: 获取字符串尾部空格长度 -- ============================================= CREATE FUNCTION [dbo].[svf_SpaceCharacterLenthOfStringSuffix] ( @string NVARCHAR(MAX) ) RETURNS INT AS BEGIN DECLARE @ltrim_str NVARCHAR(MAX) = LTRIM(@string) RETURN LEN(REVERSE(@ltrim_str)) - LEN(@ltrim_str) END
扩展方法,如查想计算字符串的长度包含字符串尾部所有空格长度:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Insus.NET -- Create date: 2019-05-25 -- Update date: 2019-05-25 -- Description: 获取字符串长度包含头尾所有空格长度 -- ============================================= CREATE FUNCTION [dbo].[svf_StringLength] ( @string NVARCHAR(MAX) ) RETURNS INT AS BEGIN DECLARE @ltrim_str NVARCHAR(MAX) = LTRIM(@string) RETURN LEN(@string) + LEN(REVERSE(@ltrim_str)) - LEN(@ltrim_str) END
把上面的字符串头部再添加几个空格
DECLARE @str NVARCHAR(MAX) = N' Insus.NET '