gpt4 book ai didi

MySQL,如何重复同一行x次

转载 作者:可可西里 更新时间:2023-11-01 08:55:09 41 4
gpt4 key购买 nike

我有一个输出地址订单数据的查询:

SELECT ordernumber
, article_description
, article_size_description
, concat(NumberPerBox,' pieces') as contents
, NumberOrdered
FROM customerorder
WHERE customerorder.id = 1;

我希望上面的行输出 NumberOrders(例如 50,000)除以 NumberPerBox 例如2,000 = 25 次。

是否有可以执行此操作的 SQL 查询,如果需要的话,我不反对使用临时表进行连接。

我查看了之前的问题,但是最近的问题是:
is to be posible in mysql repeat the same result
只给出了给出固定行数的答案,我需要它是动态的,具体取决于 (NumberOrdered div NumberPerBox) 的值。

我想要的结果是:

Boxnr   Ordernr        as_description   contents   NumberOrdered
------+--------------+----------------+-----------+---------------
1 | CORDO1245 | Carrying bags | 2,000 pcs | 50,000
2 | CORDO1245 | Carrying bags | 2,000 pcs | 50,000
....
25 | CORDO1245 | Carrying bags | 2,000 pcs | 50,000

最佳答案

首先声明一下,我比较熟悉SQL Server,所以我的回答有点偏。
其次,我没有测试我的代码示例,它可能应该用作开始的引用点。

在我看来,这种情况是数字表的主要候选者。简单地说,它是一个表(通常称为“Numbers”),无非是一个单一的 PK 列,其中包含从 1 到 n 的整数。一旦您使用了 Numbers 表并了解它的使用方式,您就会开始发现它的许多用途 - 例如查询时间间隔、字符串拆分等。

也就是说,这是我对您问题的未经测试的回答:

SELECT
IV.number as Boxnr
,ordernumber
,article_description
,article_size_description
,concat(NumberPerBox,' pieces') as contents
,NumberOrdered
FROM
customerorder
INNER JOIN (
SELECT
Numbers.number
,customerorder.ordernumber
,customerorder.NumberPerBox
FROM
Numbers
INNER JOIN customerorder
ON Numbers.number BETWEEN 1 AND customerorder.NumberOrdered / customerorder.NumberPerBox
WHERE
customerorder.id = 1
) AS IV
ON customerorder.ordernumber = IV.ordernumber

正如我所说,我的大部分经验都在 SQL Server 方面。我引用 http://www.sqlservercentral.com/articles/Advanced+Querying/2547/ (需要注册)。但是,当我搜索“SQL 数字表”时,似乎有相当多的资源可用。

关于MySQL,如何重复同一行x次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010136/

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