sql-server - Azure 数据仓库中的多行到单行

标签 sql-server azure azure-synapse

由于 Azure DW 不支持 FOR XMLSELECT变量赋值,除了使用 CURSOR 之外,还有其他方法可以将多行转换为单行吗? ?

最佳答案

我没有找到任何直接的方法,但是下面的代码对我有用。

DECLARE @intColumnCount  INT, 
        @intProcessCount INT, 
        @varColList      VARCHAR(max) 

SET @varColList = '' 

IF Object_id('tempdb.dbo.#tempColumnNames') IS NOT NULL 
  BEGIN 
      DROP TABLE #tempcolumnnames; 
  END 

CREATE TABLE #tempcolumnnames 
  ( 
     intid          INT, 
     varcolumnnames VARCHAR(256) 
  ) 

INSERT INTO #tempcolumnnames 
SELECT Row_number() 
         OVER ( 
           ORDER BY NAME), 
       NAME 
FROM   sys.tables 

SET @intProcessCount = 1 
SET @intColumnCount = (SELECT Count(*) 
                       FROM   #tempcolumnnames) 

WHILE ( @intProcessCount <= @intColumnCount ) 
  BEGIN 
      SET @varColList = @varColList + ', ' 
                        + (SELECT varcolumnnames 
                           FROM   #tempcolumnnames 
                           WHERE  intid = @intProcessCount) 
      SET @intProcessCount +=1 
  END 

SELECT Stuff(@varColList, 1, 2, '') 

希望这对某人有帮助。

关于sql-server - Azure 数据仓库中的多行到单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40810474/

相关文章:

SQL Server Reporting Services 权限错误

sql-server - 释放对执行流程任务中使用的变量的锁定 | SSIS

c# - 你会如何制作一个 "Favorite Pages"系统

.net - Azure .NET 语言包

Azure Durable编排功能ILogger输出两次日志

python - 属性错误: 'str' object has no attribute get

c++ - 为 Sql 服务器实现 odbc 包装器。以字符形式读取数据库数据或要求驱动程序将数据转换为 C 类型

删除 Composer SiteExtension 后 Azure Web 应用程序部署失败

azure - 为什么 Azure Synapse 将存储节点大小限制为 60?

Azure Synapse Lake 数据库 - 笔记本无法访问 information_schema