Вернуть несколько результатов в зависимости от поля Количество - PullRequest
4 голосов
/ 21 апреля 2011

У меня есть следующая таблица рекордов:

Product     |    Colour  |   Quantity
---------------------------------------
Product A   |    Blue    |          1
Product A   |    Red     |          2
Product B   |    Green   |          1

Как мне написать запрос, чтобы получить следующее?

Product     |    Colour
---------------------------
Product A   |    Blue
Product A   |    Red
Product A   |    Red
Product B   |    Green

1 Ответ

5 голосов
/ 21 апреля 2011
WITH    numbers (rn) AS
        (
        SELECT  MAX(quantity)
        FROM    product
        UNION ALL
        SELECT  rn - 1
        FROM    numbers
        WHERE   rn > 1
        )
SELECT  p.*
FROM    product p
JOIN    numbers n
ON      p.quantity >= n.rn
...