我正在尝试取消透视多个列,但找不到解决语法错误的方法。
它说“)”附近的语法不正确。
这是代码:
SELECT dates, times, locations, events
FROM mytable
CROSS APPLY
(VALUES ('instance1', instance1),
('instance2', instance2),
('instance3', instance3),
('instance4', instance4)) as Items(locations, events)
是否是因为我的 SQL Server 版本无法正确支持值,而我需要将这些值存储在不同的表中以引用它们以进行交叉应用?
最佳答案
非常酷,我从来没有这样过。我总是使用 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/