gpt4 book ai didi

SQL:展开集合

转载 作者:行者123 更新时间:2023-12-02 08:59:30 24 4
gpt4 key购买 nike

假设我在 SQL 中有一个这样的集合:

    Product | Quantity
A 1
B 2

我想(在单个 SELECT 语句中)将其转换为:

    Product 
A
B
B

任何人都可以向我指出(最好是 T-SQL)如何做到这一点的技巧吗?

最佳答案

您需要一个中间数字表或一个表值函数(如果您可以使用该选项)来生成数字。

假设您有一个 Numbers 表,其填充方式如下:

    Number
------
1
2
...
100000

(或者你需要多大就多大,有 efficient mechanisms for generating a numbers table of large size )

然后您将发出以下查询:

select
p.Product
from
Products as p
inner join Numbers as n on n.Number <= p.Quantity

这将产生您想要的结果。

数字表在 SQL 中非常有用,并且 Itzik Ben-Gan在他的书中详细介绍了它以及其他出色的查询技术(在他的网站上列出)。我强烈推荐他们。

关于SQL:展开集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2366125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com