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 ...
mysql 中用sql判断两个字段长度是否相等
create function myLength(@col varchar(1000)) returns int
as
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.2013-04-17
select * from 表 where char_length(a) <> char_length(b) - char_length(replace(b ,'|',''))
or
select * from 表 where length(a) <> length(b) - length(replace(b ,'|',''))2013-04-17
单一语句无法实现2013-04-17