• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符
    版本一:按分隔符进行比较
    算法思路:按分隔符截取搜索字符串循环与待搜索字符进行比较
    复制代码 代码如下:

    USE [Fly]
    GO
    --参数:@inStr 待搜索字串,@fndStr 搜索字串,@doc 分隔符
    -- 例:select dbo.fSearch('1,2,3,4,5,6','3,6,5,8,2',',') 返回0-不匹配,返回1-匹配(@instr中有@fndStr内容)
    --可以用于表搜索,如:
    -- Select *,dbo.fSearch(str,'3,6,5,8,2',',') as 是否匹配 from 表名
    -- @fndStr和@doc两个参数就需要你自己提供了,@inStr可以是数据表里的某个待搜索字段名
    CREATE FUNCTION CGF_FN_Search(@inStr VARCHAR(500),@fndStr VARCHAR(500),@doc VARCHAR(5))
    RETURNS INT
    AS
    BEGIN
    DECLARE @i INT,@c VARCHAR(500),@fStr VARCHAR(500)
    SET @fStr = @fndStr
    WHILE(LEN(@fStr) > 0)
    BEGIN
    SET @i = Charindex(@doc, @fStr)
    IF(@i = 0)
    BEGIN
    IF(CHARINDEX(@fStr,@inStr) > 0)
    RETURN 1
    ELSE
    RETURN 0
    END
    ELSE
    BEGIN
    SET @c = SUBSTRING(@fStr,1,@i-1)
    IF(CHARINDEX(@c,@inStr) > 0)
    RETURN 1
    ELSE
    SET @fStr = SUBSTRING(@fStr,@i+LEN(@doc),LEN(@fStr))
    END
    END
    RETURN 0
    END

    版本二:逐字进行比较
    算法思路:逐字截取搜索字符串循环与待搜索字符进行比较
    复制代码 代码如下:

    USE [Fly]
    GO
    /****** Object: UserDefinedFunction [dbo].[CGF_FN_SearchChar] Script Date: 09/03/2010 16:42:12 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE FUNCTION [dbo].[CGF_FN_SearchChar](@inStr VARCHAR(500),@fndStr VARCHAR(500))
    RETURNS INT
    AS
    BEGIN
    DECLARE @i INT,@f INT,@c VARCHAR(1)
    SET @i = 1
    SET @f = LEN(@fndStr)
    WHILE(@i = @f)
    BEGIN
    SET @c = SUBSTRING(@fndStr, @i, @i)
    IF(CHARINDEX(@c,@inStr) > 0)
    BEGIN
    RETURN 1
    END
    SET @i = @i + 1
    END
    RETURN 0
    END
    上一篇:SQLServer 中的死锁说明
    下一篇:用sql脚本创建sqlserver数据库范例语句
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符 sqlserver,中,比较,一个,字符串,