Select multiple rows (records) from single row(record) data
กรณีที่ต้องการ Select ให้ได้จำนวน Record ตามจำนวนที่กำหนดเช่น
Name | Qty
-----------
Dave | 25
Nathan | 10
Chaim | 8
คือต้องการให้ Dave ออกมา 25 Records , Nathan 10 Records และ Chaim 8 Records
วิธีทำโดยไม่ต้องเขียน Cursor ให้ยุ่งยากครับ ไปเจอมาจาก Stack Overflow
Ref site : http://stackoverflow.com/questions/5808083/get-multiple-records-from-one-record
;WITH T(Name,Qty) AS
(
SELECT 'Dave',25 union all
SELECT 'Nathan',10 union all
SELECT 'Chaim',8
), Numbers AS
(
SELECT number
FROM master..spt_values
WHERE type='P' AND number > 0
)
SELECT Name
FROM T
JOIN Numbers ON number <= Qty