我想要如图所示的数据。
这是 n^n 个结果。这里 V1、V2 和 V3 显示为列名。
请帮我。提前致谢。
尝试这个:
-- DROP TABLE Vendors, Products
CREATE TABLE Vendors (Vendor VARCHAR(10) PRIMARY KEY)
CREATE TABLE Products (Product VARCHAR(10) PRIMARY KEY)
GO
INSERT INTO dbo.Vendors VALUES ('V1'),('V2'),('V3')
INSERT INTO dbo.Products VALUES ('1'),('2'),('3')
DECLARE @SQL VARCHAR(8000)=(
SELECT 'SELECT '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ','+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT '+CASE WHEN P'+Product+'='''+Vendor+''' THEN '''+Product+''' ELSE '''' END'
FROM dbo.Products
FOR XML PATH(''), TYPE
)),2,8000)+' AS '+Vendor
FROM dbo.Vendors
FOR XML PATH(''),TYPE
)),2,8000)
+' FROM '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ',(VALUES '+SUBSTRING(CONVERT(VARCHAR(8000),(
SELECT ',('''+Vendor+''')'
FROM dbo.Vendors
FOR XML PATH (''), TYPE
)),2,8000)+') P'+Product+' (P'+Product+')'
FROM dbo.Products
FOR XML PATH(''), TYPE
)),2,8000)
)
EXEC(@SQL)
拉兹万