sql - 交叉应用于 SQL Server 上的列。附近有语法错误)

标签 sql sql-server azure unpivot cross-apply

我正在尝试取消透视多个列,但找不到解决语法错误的方法。

它说“)”附近的语法不正确。

这是代码:

SELECT dates, times, locations, events
FROM mytable
CROSS APPLY 
    (VALUES ('instance1', instance1),
            ('instance2', instance2),
            ('instance3', instance3),
            ('instance4', instance4)) as Items(locations, events)

是否是因为我的 SQL Server 版本无法正确支持值,而我需要将这些值存储在不同的表中以引用它们以进行交叉应用?

enter image description here

最佳答案

非常酷,我从来没有这样过。我总是使用 UNPIVOT 命令。但它似乎确实运作得很好。在不知道 mytable 结构的情况下,我不知道问题所在,但我猜测它没有列名称instance1到instance4?

这是一个独立的工作示例:

select dates
      ,times
      ,locations
      ,events
from
(
    values
        ('20181225', 'noon', 'a', 'b', 'c', 'd')
       ,('20181226', 'midnight', 'e', 'f', 'g', 'h')
) mytable (dates, times, instance1, instance2, instance3, instance4)
cross apply
(
    values
        ('instance1', instance1)
       ,('instance2', instance2)
       ,('instance3', instance3)
       ,('instance4', instance4)
) as Items (locations, events);

关于sql - 交叉应用于 SQL Server 上的列。附近有语法错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53714261/

相关文章:

sql - Spark 内联与。横向 View explode 差异?

mysql - 在 SQL 中将一条或多条记录合并为一条记录

sql-server - SQL Server 导入和导出向导中的源类型 200?

c# - 生成包含ICollection和List之间比较的Where子句,而不执行任何查询

.net - 如何获取 Azure Cosmos DB 数据库/容器大小?

azure - 如何更改Azure Docker VM的docker证书?

MySQL:从具有特定关联的关联表中获取 id

sql - 选择列、计数(列),但按第三列值排序

c# - 与数据库无关的 ASP.Net?

node.js - 在 Azure 上部署 MEAN+Webpack