begin
declare @strUserId varchar(50)
set @strUserId=''
select @strUserId=@strUserId+','+cast(StudentID as varchar) from StudentInfo
select @strUserId
end这样输出的结果如: ,2345,6789,8765,2342,
我怎把前后的 , 去掉
谢谢了!
declare @strUserId varchar(50)
set @strUserId=''
select @strUserId=@strUserId+','+cast(StudentID as varchar) from StudentInfo
select @strUserId
end这样输出的结果如: ,2345,6789,8765,2342,
我怎把前后的 , 去掉
谢谢了!
declare @strUserId varchar(50)
select @strUserId=ISNULL(@strUserId+',','')+cast(StudentID as varchar) from StudentInfo
select @strUserId
end
declare @strUserId varchar(50)
select @strUserId=ISNULL(@strUserId+',','')+cast(StudentID as varchar) from StudentInfo
WHERE LEN(StudentID )>0
select @strUserId
end
DECLARE @i varchar(30)
SET @i=',2345,6789,8765,2342,'IF(LEFT(@i,1)=',')
SELECT SUBSTRING(@i,2,LEN(@i)-1)
ELSE
SELECT @i
declare @strUserId varchar(50)
set @strUserId=''
select @strUserId=@strUserId+','+cast(StudentID as varchar) from StudentInfo
select right(@strUserId,len(@strUserId)-1)
end
BEGIN
DECLARE @STRUSERID VARCHAR(50)
SET @STRUSERID=''
SELECT @STRUSERID=@STRUSERID+','+CAST(STUDENTID AS VARCHAR) FROM STUDENTINFO
SELECT STUFF((SELECT @STRUSERID),1,1,',')
END
CREATE TABLE StudentInfo
(strUserId int
)
INSERT INTO StudentInfo VALUES(2345)
INSERT INTO StudentInfo VALUES(6789)
INSERT INTO StudentInfo VALUES(8765)
INSERT INTO StudentInfo VALUES(2342)----2) 语句
BEGIN
DECLARE @strUserId varchar(50)
SET @strUserId=NULL
SELECT @strUserId=ISNULL(@strUserId+',','')+cast(strUserId as varchar) from StudentInfo
SELECT strUserId = @strUserId
END
---- 3)结果
strUserId
--------------------------------------------------
2345,6789,8765,2342(1 行受影响)
BEGIN
DECLARE @STRUSERID VARCHAR(50)
SET @STRUSERID=''
SELECT @STRUSERID=@STRUSERID+','+CAST(STUDENTID AS VARCHAR) FROM STUDENTINFO
SELECT STUFF((SELECT @STRUSERID),1,1,',') --STUFF这句我没大看明白,您能解释一下吗
END
语法
--------------------------------------------------------------------------------
STUFF ( character_expression , start , length ,character_expression )
参数
--------------------------------------------------------------------------------character_expression 一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。start 一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression长,则返回空字符串。start 可以是 bigint 类型。length 一个整数,指定要删除的字符数。如果 length 比第一个 character_expression长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。返回类型
--------------------------------------------------------------------------------如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。备注
--------------------------------------------------------------------------------如果结果值大于返回类型支持的最大值,则产生错误。示例
--------------------------------------------------------------------------------以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。SELECT STUFF('abcdef', 2, 3, 'ijklmn')
GO
下面是结果集: ---------
aijklmnef (1 row(s) affected)
On StudentInfo
for Delete
As
Delete BorrowRecord
From BorrowRecord br , Deleted d --请问前辈们这句是什么意思
Where br.StudentID=d.StudentID
borrowrecord br inner join deleted d on br.studentid=d.studentid
deleted表应该是触发器中的一个临时表, br和 d 是指表的别名.
意义为: 删除指定长度的字符并在指定的起始点插入另一组字符
当StudentInfo的删除记录存在于BorrowRecord时,也同样会被删除.