SQL能否按字节来截取字符?

0551 2003-08-21 12:05:52
SQL能否按字节来截取字符?

LEFT,RIGHT都是按字符来截取的
有没有按字节来截取的?
...全文
863 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlpseeyou 2003-12-11
  • 打赏
  • 举报
回复
ding
zjcxc 元老 2003-12-11
  • 打赏
  • 举报
回复
--下面这个更简单:

--返回指定字符串左边指定字节长度的字符串
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getleft]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_getleft]
GO

CREATE function f_getleft(@str varchar(8000),@len int)
returns varchar(8000)
as
begin
declare @i int
exec master..sp_GetMBCSCharLen @str,@len,@i out
if @i is not null set @str=left(@str,@i)
return(@str)
end
go

--调用示例
select dbo.f_getleft('中ac中cce',7)
CrazyFor 2003-08-21
  • 打赏
  • 举报
回复
1,建自定义函数
CREATE function getleft(@a Nvarchar(2000),@getLen int)
returns Nvarchar(2000)
as
begin
declare @i int,@len int,@b Nvarchar(2000)
set @i=1
set @b=''
set @len=0
while @i<=len(@a) and @len<@getlen
begin
if ascii(substring(@a,@i,1))>128
set @len=@len+1

set @b=left(@a,@i)
set @len=@len+1
set @i=@i+1
end
return @b
end


2,调用:

select dbo.getleft('中ac中cce',7)
---------
中ac中c
happy_0325 2003-08-21
  • 打赏
  • 举报
回复
没发现。帮你顶
dlkfth 2003-08-21
  • 打赏
  • 举报
回复
没有

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧