SQL中两个数字差的字符串操作

SQL中两个数字差的字符串操作,sql,sql-server,string,Sql,Sql Server,String,我有一个名为StartYear的字段,该字段的值是2000。 我还有一个字段叫做EndYear,字段的值是2005 我想创建一个名为YearsInTheProgram的字段,其值为20052004、2003200220012000 我的每一行都有不同的值,所以本质上我希望这个字段用逗号分隔字段之间的差异 任何帮助都将不胜感激 CREATE FUNCTION [dbo].[GetAllYears] ( @START BIGINT = 2000, @END BIGINT = 2005

我有一个名为StartYear的字段,该字段的值是2000。 我还有一个字段叫做EndYear,字段的值是2005

我想创建一个名为YearsInTheProgram的字段,其值为20052004、2003200220012000

我的每一行都有不同的值,所以本质上我希望这个字段用逗号分隔字段之间的差异

任何帮助都将不胜感激

CREATE FUNCTION [dbo].[GetAllYears] (
    @START BIGINT = 2000,
    @END BIGINT = 2005
) RETURNS NVARCHAR(MAX) AS BEGIN

    DECLARE @RET NVARCHAR(MAX);

    SET @RET = CONVERT(NVARCHAR(4), @START)

    WHILE @START < @END BEGIN
        SET @START += 1;
        SET @RET = @RET + ',' + CONVERT(VARCHAR(4), @START);
    END


    RETURN ISNULL(@RET, '');
END
GO
你可以更新你的表格

update xxxxTable (AllYears)
select dbo.GetAllYears(startYear, endYear) from xxxxTable 

您使用的是哪种数据库管理系统?答案将是特定于供应商的。我使用的是SQL Server管理服务器
update xxxxTable (AllYears)
select dbo.GetAllYears(startYear, endYear) from xxxxTable