SQL Server 学习系列-- 获取字符串中出现某字符的次数及字符某次出现的下标
Posted ㄌㄟ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 学习系列-- 获取字符串中出现某字符的次数及字符某次出现的下标相关的知识,希望对你有一定的参考价值。
DECLARE @Str NVARCHAR(500) = ‘1_BB_CC_DD_AA_EE_YY_WW_HH_GG‘ --// 1. 获取下划线在字符串中出现的次数 SELECT LEN(@Str) - LEN(REPLACE(@Str, ‘_‘, ‘‘)) --// 2. 获取下划线某次出现的位置下标 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘[dbo].[IndexNumOfStr]‘) AND type in (N‘FN‘, N‘IF‘, N‘TF‘, N‘FS‘, N‘FT‘)) DROP FUNCTION [dbo].IndexNumOfStr GO CREATE FUNCTION dbo.IndexNumOfStr ( @Str NVARCHAR(500), -- 字符串 @charStr NVARCHAR(50), -- 要查询的字符 @num INT -- 第几次出现 ) RETURNS INT AS BEGIN DECLARE @posIndex INT = 0 -- 出现的位置 DECLARE @i INT = 0 -- 查找次数 WHILE @i < @num BEGIN SET @i = @i + 1 SET @posIndex = CHARINDEX(@charStr, @Str, @posIndex + 1) IF @posIndex = 0 BEGIN RETURN 0 END END RETURN @posIndex END GO --// 测试结果 SELECT dbo.IndexNumOfStr(@Str, ‘_‘, 10)
以上是关于SQL Server 学习系列-- 获取字符串中出现某字符的次数及字符某次出现的下标的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server:获取具有附加数据的一系列值之间的最大值