Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL存储过程中变量中文本的更改顺序_Sql Server_Sorting_Variables_Stored Procedures_Dynamic - Fatal编程技术网

Sql server SQL存储过程中变量中文本的更改顺序

Sql server SQL存储过程中变量中文本的更改顺序,sql-server,sorting,variables,stored-procedures,dynamic,Sql Server,Sorting,Variables,Stored Procedures,Dynamic,我有一个SQL存储过程,它有一个动态变量。该变量用于创建用于生成透视表的字段名的逗号分隔列表 执行时,变量可能具有以下值: [Qty Actual - Week 1], [Qty Actual - Week 2], [Qty Actual - Week 3], [Qty Budget - Week 1], [Qty Budget - Week 2], [Qty Budget - Week 3], [Qty Shipped - Week 1], [Qty Shipped - Week 2], [Q

我有一个SQL存储过程,它有一个动态变量。该变量用于创建用于生成透视表的字段名的逗号分隔列表

执行时,变量可能具有以下值:

[Qty Actual - Week 1], [Qty Actual - Week 2], [Qty Actual - Week 3],
[Qty Budget - Week 1], [Qty Budget - Week 2], [Qty Budget - Week 3],
[Qty Shipped - Week 1], [Qty Shipped - Week 2], [Qty Shipped - Week 3]
透视图的最终结果将导出到Excel,字段将按上述顺序显示。但是,我希望他们能这样说:

[Qty Actual - Week 1], [Qty Budget - Week 1], [Qty Shipped - Week 1]
[Qty Actual - Week 2], [Qty Budget - Week 2], [Qty Shipped - Week 2]
[Qty Actual - Week 3], [Qty Budget - Week 3], [Qty Shipped - Week 3]
我必须按照目前的设置方式更改整个存储过程。是否有一些命令可以用来更改动态变量中列的顺序?

插入@TAB\u VAR
INSERT INTO @TAB_VAR
SELECT @VAR

INSERT INTO @TAB_VAR1
SELECT SPLIT.A.VALUE('.', 'VARCHAR(100)')
FROM   (SELECT CAST ('<M>' + REPLACE(COL, ',', '</M><M>') + '</M>' AS XML) AS DATA
        FROM   @TAB_VAR) AS A
       CROSS APPLY DATA.NODES ('/M') AS SPLIT(A)
ORDER  BY SUBSTRING(SPLIT.A.VALUE('.', 'VARCHAR(100)'), LEN(SPLIT.A.VALUE('.', 'VARCHAR(100)')) -  1, 1)

SELECT @VAR = ''

SELECT @VAR = COALESCE(@VAR+',', '') + COL
FROM   @TAB_VAR1

SELECT @VAR 
选择@VAR 插入@TAB_VAR1 选择SPLIT.A.VALUE(‘.’,‘VARCHAR(100)’) 从(选择CAST(“”+替换(列,“”,“”)+作为XML)作为数据 从@TAB_VAR)开始,作为 将DATA.NODES('/M')交叉应用为拆分(A) 按子字符串排序(SPLIT.A.VALUE('.','VARCHAR(100)')、LEN(SPLIT.A.VALUE('.','VARCHAR(100)'))-1,1) 选择@VAR='' 选择@VAR=COALESCE(@VAR+',','')+COL 来自@TAB_VAR1 选择@VAR
使用您的输入声明'@var'varchar',并使用col varchar(8000)声明'@tab_var'和'@tab_var1'表变量。我无法在此处添加的答案区域中添加这些代码