在MSSQL中,某字段中的值为:,123,321,abc,cba,
如何将这个串的头和尾字符,去掉?
当然,这个字段的值也可能为空。
限用一行SQL完成。

解决方案 »

  1.   


    select REVERSE(stuff(REVERSE(stuff(',123,321,abc,cba,',1,1,'')),1,1,''))
      

  2.   

    select stuff(REVERSE(ltrim(stuff(',123,321,abc,cba,',1,1,''))),1,1,'')
    --结果
    abc,cba,123,321
      

  3.   

    错误 再改下:
    select ltrim(REVERSE(stuff(REVERSE(ltrim(stuff(',123,321,abc,cba,',1,1,''))),1,1,'')))
      

  4.   

    DECLARE @str nvarchar(2000)
    SET @str=',123,321,abc,cba,' 
    SELECT CASE WHEN LEN(@str)>=2 THEN SUBSTRING(@str,2,LEN(@str)-2) ELSE '' END AS s
      

  5.   

    像这样...
    DECLARE @VAR NVARCHAR(100)
    SET @VAR=',123,321,abc,cba'
    select substring(@var,CHARINDEX(',',@VAR,2), len(@var)-charindex('c',REVERSE(@var))-CHARINDEX(',',@VAR,2))
      

  6.   


    declare @a char(50)
    select @A=',123,321,abc,cba,'
    select @A=substring(@a,2,len(@a)-2)
      

  7.   

    DECLARE @STR VARCHAR(20)
    SELECT @STR =',123,321,abc,cba,' SELECT CASE WHEN LEN(@STR)>=2 THEN SUBSTRING(@STR,2,LEN(@STR)-2) ELSE '' END AS s
      

  8.   

    ---我就是个呆子 
    SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END 
      

  9.   


    DECLARE @STR VARCHAR(800)SET @STR=',123,321,abc,cba,'SELECT STUFF(STUFF(LTRIM(@STR),1,1,''),LEN(STUFF(LTRIM(@STR),1,1,''))-LEN(RIGHT(RTRIM(@STR),1))+1,1,'')123,321,abc,cba(所影响的行数为 1 行)
      

  10.   

    --设字段名为f1
     case when len(isnull(f1,''))>2 then right(left(f1,len(f1)-1),len(f1-2)) else f1 end
      

  11.   

    select substring(',123,321,abc,cba,',2,15)
    针对列的话
    select substring(colname,2,15) from tbname
      

  12.   


    SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END 可以有多个字符串函数来处理的