我有完全相同的查询。适用于17.1版本的SSMS,但不适用于17.3
IF OBJECT_ID('tempdb..#Orders','U') IS NOT NULL
DROP TABLE #Orders
-- DDL and sample data for UNPIVOT Example 1
CREATE TABLE #Orders
(
Orderid INT IDENTITY,
GiftCard INT,
TShirt INT,
Shipping INT
)
INSERT INTO #Orders
SELECT 1, NULL, 3
UNION ALL
SELECT 2, 5, 4
UNION ALL
SELECT 1, 3, 10
SELECT * FROM #Orders
SELECT
OrderID, ProductName, ProductQty
FROM
#Orders
CROSS APPLY
(VALUES ('GiftCard', GiftCard), ('TShirt', TShirt),
('Shipping', Shipping)) x (ProductName, ProductQty)
WHERE
ProductQty IS NOT NULL
DROP TABLE #Orders
这在17.1上没有问题。如果在17.3上运行相同的查询,则返回以下错误
行处的解析错误:16,列:14:'('
附近的语法不正确
唯一的另一个不同是SSMS的17.3版本在Azure中的VM上。
否则它们完全相同。
当我研究某个原因时,我会因连接问题获得100%的结果,而事实并非如此。