begin
declare @strUserId varchar(50)
set @strUserId=''
select @strUserId=@strUserId+','+cast(StudentID as varchar)  from StudentInfo
select  @strUserId
end这样输出的结果如: ,2345,6789,8765,2342,
我怎把前后的 , 去掉  
谢谢了!

解决方案 »

  1.   

    begin
    declare @strUserId varchar(50)
    select @strUserId=ISNULL(@strUserId+',','')+cast(StudentID as varchar) from StudentInfo
    select @strUserId
    end
      

  2.   

    begin
    declare @strUserId varchar(50)
    select @strUserId=ISNULL(@strUserId+',','')+cast(StudentID as varchar) from StudentInfo
    WHERE LEN(StudentID )>0
    select @strUserId
    end
      

  3.   


    DECLARE @i varchar(30)
    SET @i=',2345,6789,8765,2342,'IF(LEFT(@i,1)=',')
    SELECT SUBSTRING(@i,2,LEN(@i)-1) 
    ELSE
    SELECT @i
      

  4.   

    begin
    declare @strUserId varchar(50)
    set @strUserId=''
    select @strUserId=@strUserId+','+cast(StudentID as varchar) from StudentInfo
    select right(@strUserId,len(@strUserId)-1)
    end
      

  5.   

    try~~~
    BEGIN
    DECLARE @STRUSERID VARCHAR(50)
    SET @STRUSERID=''

    SELECT @STRUSERID=@STRUSERID+','+CAST(STUDENTID AS VARCHAR) FROM STUDENTINFO
    SELECT STUFF((SELECT @STRUSERID),1,1,',')
    END
      

  6.   

    ----0) 修改如下:----1) 表和测试数据
    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 行受影响)
      

  7.   

    请问zsh0809前辈
    BEGIN
        DECLARE @STRUSERID VARCHAR(50)
        SET @STRUSERID=''
        
        SELECT @STRUSERID=@STRUSERID+','+CAST(STUDENTID AS VARCHAR) FROM STUDENTINFO
        SELECT STUFF((SELECT @STRUSERID),1,1,',')  --STUFF这句我没大看明白,您能解释一下吗
    END
      

  8.   


    语法
    -------------------------------------------------------------------------------- 
    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)
      

  9.   

    Create trigger trdStudent  
          On StudentInfo             
          for Delete         
        As
          Delete BorrowRecord 
            From BorrowRecord br , Deleted d  --请问前辈们这句是什么意思
            Where br.StudentID=d.StudentID
      

  10.   

    这是以前SQL的语法,指从两个表进行连接,连接的方式取决于 where 语句中的等号形式.等价于:
    borrowrecord br inner join deleted d on br.studentid=d.studentid
    deleted表应该是触发器中的一个临时表, br和 d 是指表的别名.
      

  11.   

    STUFF 格式为 :STUFF ( character_expression, start, length, character_expression ) 
    意义为: 删除指定长度的字符并在指定的起始点插入另一组字符 
    当StudentInfo的删除记录存在于BorrowRecord时,也同样会被删除.