首页 > 数据库技术 > 详细

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

时间:2017-11-16 15:46:55      阅读:649      评论:0      收藏:0      [点我收藏+]
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 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!