sql两字符串比较
字符串 a='0100|0200|0311|0315|0318|0420|'
字符串 b='0111|0112|0316|0304|0522|0503|'
where b like a print '888'
a中的0100代表所有的,即01[0-9][0-9]
我的本方法是用替换“|”来实现拼sql语句,但是效率很低,请各位高手给个高效的方法!
FUNCTION [dbo].[String_Rather2] --判断类
(
@PanString varchar(2000),--要判断的列
@YuanString varchar(2000) --要对比的列
)
RETURNS varchar(max)
AS
BEGIN
declare @sql varchar(max)
set @sql =char(32)+@YuanString+char(32)+'like'+char(32)+char(39)+char(37)+replace(@PanString,'|',char(37)+char(39)+char(32)+'or'+char(32)+@YuanString+char(32)+'like'+char(32)+char(39)+char(37))+'m><n'+char(37)+char(39)
RETURN @sql
END
@a=a,@b=b --调用上面的方法函数
set @a = replace(@a ,'000','0[0-9][0-9]')
set @a = replace(@a ,'00','[0-9][0-9]')
set @where = @where + ' and ('+dbo.String_Rather2(@a, @b)+')'
再次请大家赐教!!在线等……