如下面一串字符串:
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
Source Code
扩展方法,如查想计算字符串的长度包含字符串尾部所有空格长度:
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
Source Code
把上面的字符串头部再添加几个空格
DECLARE @str NVARCHAR(MAX) = N' Insus.NET '
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[计算字符串尾部空格长度]http://www.zyiz.net/tech/detail-111908.html