T-SQL - 如何循环和构建声明变量

时间:2017-05-22 16:38:26

标签: sql-server tsql

如何循环选定代码的数量,并将代码描述分配给从@ language_desc_1到@ language_desc_30的声明变量。

所以基于以下数据。如果我只标记2种语言进行显示,则只会分配2种语言。

我们使用数据字段驱动的标签工具。所以我需要能够分配变量。

目标是使用数据字段构建数据字符串,以便标签读取正确的数据。

Products_Descriptions表如下所示:

8332    05  US  LARGE GREEN CHAIR   1   Y
8332    05  MX  SILLA VERDE GRANDE  2   Y
8332    05  CN  大綠色的椅子  3   N

DECLARE
@language_desc_1 nvarchar(100),
@language_desc_2 nvarchar(100), 
@language_desc_3 nvarchar(100),
@language_desc_4 nvarchar(100),
@language_desc_5 nvarchar(100)

BEGIN
select
    @language_desc_1 = case when a.RowNum = 1 then a.Language_code else null end,
    @language_desc_2 = case when a.RowNum = 2 then a.Language_code else null end,
    @language_desc_3 = case when a.RowNum = 3 then a.Language_code else null end,
    @language_desc_4 = case when a.RowNum = 4 then a.Language_code else null end,
    @language_desc_5 = case when a.RowNum = 5 then a.Language_code else null end
from
    (
    select
        Language_code, ROW_NUMBER() over (order by Sort_Code) RowNum
    from
        Products_Descriptions
        where Display_On_Label_Flag = 'Y'
    ) a
END

select @language_desc_1
select @language_desc_2

1 个答案:

答案 0 :(得分:0)

我的目标是为我公司的用户开发一些只知道SQL的东西,以便在不开发C#dll的情况下对存储过程进行更改。我决定只创建一个c#dll来处理这个问题。我们只有几个C#开发人员。

感谢大家的帮助。