if(charindex('0201','020102030302')%4=1)
print '匹配'
else
print '不匹配'

解决方案 »

  1.   

    create function F_test6 (@str varchar(10))
    returns varchar(1)
    as
    begin
    declare @i varchar(1)
    if charindex(@str,'020102030302')>0
    set @i='1'
    else
    set @i='0'
    return @i
    end调用:(返回1存在,返回0不存在)
    declare @i int
    set @i=dbo.F_test6('0201')
    print @i
    ----------------------
    结果:
    1
    drop function F_test6
      

  2.   

    declare @c varchar(100)
    declare @i int
    declare @len int
    set @c = '020102030302'
    set @i = 1
    set @len = len(@c)while not @i<>@len/4+1
    begin
      if substring(@c,4*@i-3,4*@i)=匹配字段  
      begin 
        print '匹配'
        return 
      end
      set @i=@i+1
    end 
    print '不匹配'
      

  3.   

    用DIFFERENCE函数试试,根据返回的差来判断一下是否是按照四位一截进行的。
      

  4.   

    或者用PATINDEX 函数,把值拿出来判断一下,看看值取余4后是不是等于1,就行了。
      

  5.   

    create function F_test6 (@str varchar(10))
    returns varchar(1)
    as
    begin
    declare @i varchar(1)
    if PATINDEX(@str,'020102030302') % 4 = 1
               return 1
             else
               return 0
    end调用:(返回1存在,返回0不存在)
    declare @i int
    set @i=dbo.F_test6('0201')
    print @i
    ----------------------
    结果:
    1
    drop function F_test6