我有以下“订单表”:
Item Quantity
pencil 2
pen 1
Notebook 4
我需要这样的结果:
Item Quantity
pencil 1
pencil 1
pen 1
Notebook 1
Notebook 1
Notebook 1
Notebook 1
最佳答案
您没有指定您正在使用哪个 RDBMS,因此生成数字的方式将取决于此(对于 SQL Server 可能是递归 CTE,对于 Oracle 使用 DUAL 等)。我只编写了代码来处理您所显示的数据,但您显然需要在最终解决方案中考虑大于四的数字。
SELECT
MT.sr_no,
MT.item_name,
1 AS quantity
FROM
My_Table MT
INNER JOIN
(
SELECT 1 AS nbr UNION ALL SELECT 2 AS nbr UNION ALL
SELECT 3 AS nbr UNION ALL SELECT 4 AS nbr
) N ON N.nbr <= MT.quantity
关于sql - 根据列值 SQL 将一行拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635133/