34,589
社区成员
发帖
与我相关
我的任务
分享
--调用错误,select bbs_test.dbo.UsernameToNickname('aabb,ccdd')
或者select dbo.UsernameToNickname('aabb,ccdd')
IF EXISTS(SELECT name FROM bbs_test..sysobjects where name in('UsernameToNickname') and xtype = 'F')
DROP FUNCTION UsernameToNickname
GO
CREATE FUNCTION UsernameToNickname(@username nvarchar(50))
RETURNS nvarchar(50)
AS
BEGIN
DECLARE @Result nvarchar(50)
DECLARE @Index int
DECLARE @tmpstr nvarchar(50)
DECLARE @beginindex int
SET @beginindex = 0
IF EXISTS(SELECT CHARINDEX(',',@username,@beginindex))
BEGIN
WHILE(SELECT CHARINDEX(',',@username,@beginindex)) <>NULL
BEGIN
SET @Index = CHARINDEX(',',@username)
SET @tmpstr = (SELECT max(nickname) FROM dnt_users where charindex(username,(SUBSTRING(@username,1,@Index-1)))>0) --这里改动
SET @beginindex = @Index
SET @Result =@Result + @tmpstr + ','
END
SET @Result = SUBSTRING(@Result,1,LEN(@Result))
END
ELSE
BEGIN
SET @Result = (SELECT max(nickname) FROM dnt_users where charindex(username,@username)>0) --这里改动
END
RETURN(@Result)
END
GO
这样试一下