วันศุกร์ที่ 29 เมษายน พ.ศ. 2554

Select multiple rows from single row data

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น