日期:2014-05-17  浏览次数:20748 次

关于自定义函数。
现有表ProductInfo,其中有一字段Atrribute,Atrribute的数据值为无规律字符串。现在我想实现的是,把Atrribute的数据值每隔三个字符用逗号隔开。如图所示:

变成

用什么方法可以实现呢?自定函数可以吗?具体怎么实现?求教。
自定义函数

------解决方案--------------------
  CREATE FUNCTION fn_GetAttribute(@attribute NVARCHAR(MAX))
  RETURNS NVARCHAR(MAX)
  AS
  BEGIN
   DECLARE @output NVARCHAR(MAX) = ''
    WHILE LEN(@attribute) > 3
      BEGIN
       SET @output = @output + SUBSTRING(@attribute,1,3) + ','
       SET @attribute = SUBSTRING(@attribute,4,LEN(@attribute) - 3)
      END
    SET @output = @output + @attribute
    RETURN @output
  END
 

UPDATE ProductInfo SET Attribute = dbo.fn_GetAttribute(Attribute)
------解决方案--------------------
也可以直接写在select的字段位置