1. 程式人生 > >【SQL Server 學習系列】-- 獲取字符串中出現某字符的次數及字符某次出現的下標

【SQL Server 學習系列】-- 獲取字符串中出現某字符的次數及字符某次出現的下標

nbsp pan urn ace server type char sel sql

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 (NFN, NIF, NTF, NFS, NFT))
    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 學習系列】-- 獲取字符串中出現某字符的次數及字符某次出現的下標