读书人

SQL SERVER函数出现有关问题

发布时间: 2013-09-06 10:17:17 作者: rapoo

SQL SERVER函数出现问题,求救
以下函数在编辑的时候总是提示在while那边出现问题,求救


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author:<Author,,Name>
-- Create date: <Create Date,,>
-- Description:<Description,,>
-- =============================================
ALTER FUNCTION [dbo].[DeleteHZ]
(
-- Add the parameters for the function here
@cargoname varchar(512)
)
RETURNS varchar(150)
AS
begin
DECLARE @Result varchar(512)
declare @sno smallint
select @Result=''
select @sno=1
while(@sno<=datalength(@cargoname))
  begin
  if datalength(SUBSTRING(@cargoname,@sno, 1))=1
  set @Result=@Result+SUBSTRING(@cargoname,@sno, 1)
  set @sno=@sno+1
select @Result
  end
RETURN('')
end
GO
SQL?Server
[解决办法]

ALTER FUNCTION [dbo].[DeleteHZ]
(
@cargoname varchar(512)
)
RETURNS varchar(150)
AS
begin
DECLARE @Result varchar(512)
declare @sno smallint
select @Result=''
select @sno=1
while(@sno<=datalength(@cargoname))
begin
if DATALENGTH(SUBSTRING(@cargoname,@sno, 1))=1
set @Result=@Result+SUBSTRING(@cargoname,@sno, 1)
set @sno=@sno+1
--select @Result--这一行函数里不允许包含select语句
end
RETURN @Result--RETURN你的结果
end
GO

SELECT DBO.[DeleteHZ]('我们a')

--DATALENGTH: 返回字符串的字节长度
--LEN: 返回字符长度

读书人网 >SQL Server

热点推荐