我希望数据与image中显示的一样 这是n ^ n个结果。这里是V1,V2& V3显示为列名。
请帮帮我。 提前谢谢。
答案 0 :(得分:1)
试试这个:
-- 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)
勒兹