zoukankan      html  css  js  c++  java
  • 【SQL】判断一个字符串是否在另外一个字符串中

    eg:

    str1 = 'admin'

    str2 = '1234,123admin,xcxx'

    比较str1是否在str2中

    用常用的charindex,返回肯定是有值的,这里自己动手写一个方法

    ----------------检查一个字符串是否在另外一个字符串中数,另外一个字符串元素用,隔开-------------
    Create function [dbo].[CheckStrInArr](@s as varchar(50),@sArr as varchar(5000)) returns int
    as 
    begin
    declare @str varchar(5000)
    set @str=@sArr
    declare @next int  
    declare @ret int        -- 0表示不存在  1表示存在
    set @ret=0
    set @next=1
    while @next<=dbo.Get_StrArrayLength(@str,',')
    begin
       if dbo.Get_StrArrayStrOfIndex(@str,',',@next)=@s 
      begin
      set @ret=1;
      end
       set @next=@next+1
    end
    return @ret
    end
    ----------------检查一个元素是否在数组中-------------
    Create function [dbo].[CheckStrInArr](@s as varchar(50),@sArr as varchar(5000)) returns int
    as 
    begin
    declare @str varchar(5000)
    set @str=@sArr
    declare @next int  
    declare @ret int        -- 0表示不存在  1表示存在
    set @ret=0
    set @next=1
    while @next<=dbo.Get_StrArrayLength(@str,',')
    begin
       if dbo.Get_StrArrayStrOfIndex(@str,',',@next)=@s 
      begin
      set @ret=1;
      end
       set @next=@next+1
    end
    return @ret
    end
    ---------------------获取数组的长度--------------
    Create function [dbo].[Get_StrArrayLength]
    (
      @str varchar(5000),  --要分割的字符串
      @split varchar(10)  --分隔符号
    )
    returns int
    as
    begin
      declare @location int
      declare @start int
      declare @length int
    
      set @str=ltrim(rtrim(@str))
      set @location=charindex(@split,@str)
      set @length=1
      while @location<>0
      begin
        set @start=@location+1
        set @location=charindex(@split,@str,@start)
        set @length=@length+1
      end
      return @length
    end

    通过以上三个小函数即可判断特定字符串是否在目标串中

  • 相关阅读:
    微信小程序保存图片功能实现
    小程序清除缓存功能如何实现
    小程序自定义函数—数字千位转换
    小程序身份证号检测函数
    小程序 的 textarea 组件 层级问题如何解决
    Markdown 语法背一下咯
    跨域了解一下?
    sort命令的k选项大讨论【转】
    Shell脚本中实现切换用户并执行命令操作【转】
    Ansible Tower系列 四(使用tower执行一个命令)【转】
  • 原文地址:https://www.cnblogs.com/yhnet/p/12659069.html
Copyright © 2011-2022 走看看