length是一个函数,判断字符的长度,>=2 应该写在外面
字段长度只是规定了该字段的值允许插入的最大长度,也就是你插入的数据长度可以比他小,但不允许比他大,例如某字段是varchar(20)那么这个字段允许插入的数据最多支持20个字符,超过的话在插入时报错,小于等于这个长度的数据正常插入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条)