length是一个函数,判断字符的长度,>=2 应该写在外面
create function myLength(@col varchar(1000)) returns intas
begin
declare @v int
set @v=1
declare @i int
set @i=charindex('|',@col)
while(@i>0)
begin
set @v=@v+1
set @col=substring(@col,@i+1,len(@col))
set @i=charindex('|',@col)
end
return @v
end
go
select dbo.mylength('123') //结果是1
select dbo.mylength('|123') //结果是2
select dbo.mylength('|123|') //结果是3
你的语句就可以用:
select * from 表 where dbo.mylength(a) <>dbo.mylength(b)
--注意函数名前要加dbo.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)