SQL Server pivot vs. multiple join

Что более эффективно использовать в SQL Server 2005: PIVOT или MULTIPLE JOIN?

Например, я получил этот запрос, используя два соединения:

SELECT p.name, pc1.code as code1, pc2.code as code2
FROM product p
    INNER JOIN product_code pc1
    ON p.product_id=pc1.product_id AND pc1.type=1
    INNER JOIN product_code pc2
    ON p.product_id=pc2.product_id AND pc2.type=2

Я могу сделать то же самое, используя PIVOT:

SELECT name, [1] as code1, [2] as code2
FROM (
    SELECT p.name, pc.type, pc.code
    FROM product p
        INNER JOIN product_code pc
        ON p.product_id=pc.product_id
    WHERE pc.type IN (1,2)) prods1
PIVOT(
    MAX(code) FOR type IN ([1], [2])) prods2

Какое из них будет более эффективным?

29
задан Robert Koritnik 6 May 2014 в 11:34
поделиться