码迷,mamicode.com
首页 > 数据库 > 详细

【SQL Server 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

时间:2017-11-16 15:51:02      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:字符串   下标   create   end   ace   sys   from   测试结果   weight   

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 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

标签:字符串   下标   create   end   ace   sys   from   测试结果   weight   

原文地址:http://www.cnblogs.com/elliot-lei/p/7844647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!