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

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

  • 相关阅读:
    roportional Rate Reduction (PRR)
    【C++11新特性】 nullptr关键字
    C++ 智能指针
    std::thread
    C++11 的 std::ref 用法
    for auto
    C++11右值引用与移动构造函数
    leetcode刷题笔记一百零六题 从中序与后序遍历序列构造二叉树
    leetcode刷题笔记一百零五题 从前序与中序遍历序列构造二叉树
    leetcode刷题笔记一百零四题 二叉树的最大深度
  • 原文地址:https://www.cnblogs.com/yhnet/p/12659069.html
Copyright © 2011-2022 走看看