没有标准函数的,只能自己写一个
create function fn_TruncSemiHanzi(@str varchar(4000))
returns varchar(8000)
as
begin
declare
@sTmp varchar(8000),@i int,@itmp int,@itmp2 int ,@stmp2 varchar(2)
select @sTmp=''
select @i=1
while @i<=len(@str)
begin
select @itmp=convert(int,substring(convert(varbinary,substring(@str ,@i,1)),1,1)) --截取一个字节
if @itmp>127
begin
--大于127检查后面一个字节
select @itmp2=convert(int,substring(convert(varbinary,substring(@str ,@i,1)),2,1))
if @itmp2>127
begin
select @stmp2=char(@itmp)+char(@itmp2) --是一个完整的汉字
end
else
begin
select @stmp2=char(@itmp2) --丢弃半个汉字
end
end
else
begin
select @sTmp2=char(@itmp)
end
select @sTmp=@sTmp+@stmp2
select @i=@i+1
end
return @stmp
end
以上就是关于sql 查询 多少个字节长度 比如中 者返回2个字节,是哪个方法全部的内容,包括:sql 查询 多少个字节长度 比如中 者返回2个字节,是哪个方法、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)