我试图取消多列,但是找不到解决语法错误的方法。
在')'附近显示不正确的语法。
代码如下:
SELECT dates, times, locations, events
FROM mytable
CROSS APPLY
(VALUES ('instance1', instance1),
('instance2', instance2),
('instance3', instance3),
('instance4', instance4)) as Items(locations, events)
是否可能是因为我的SQL Server版本不正确支持值,并且我需要将值存储在其他表中以进行交叉引用?
答案 0 :(得分:1)
很酷,我从来没有那样做过。我总是使用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);
答案 1 :(得分:1)