当前位置: 首页 > 面试题库 >

如何复制我的SQL结果?

宋俊民
2023-03-14
问题内容

我想基于该表的数量从表中的一行获得多个结果。

ID | count
A  | 12
B  | 138

因此,我希望查询的输出为A的12倍(无论是否使用计数器)和B的138倍。我已经看到了在DB上添加计数表的解决方案,但我无法做到这一点。


问题答案:

您可以使用相关的分层查询:

SELECT t.id, r.COLUMN_VALUE, t.cnt
FROM   table_name t
       CROSS JOIN
       TABLE(
         CAST(
           MULTISET(
             SELECT LEVEL
             FROM   DUAL
             CONNECT BY LEVEL <= t.cnt
           )
           AS SYS.ODCINUMBERLIST
         )
       ) r;

递归子查询分解子句:

WITH row_generator ( id, lvl, cnt ) AS (
  SELECT id, 1, cnt
  FROM   table_name
UNION ALL
  SELECT id, lvl + 1, cnt
  FROM   row_generator
  WHERE  lvl < cnt
)
SELECT *
FROM   row_generator
ORDER BY id, lvl

因此对于测试数据:

CREATE TABLE table_name ( ID, cnt ) AS
SELECT 'A',  12 FROM DUAL UNION ALL
SELECT 'B', 138 FROM DUAL

这两个解决方案都将输出:

ID | COLUMN_VALUE | 碳纳米管
:-| -----------:| | -:
A | 1 | 12
A | 2 | 12
A | 3 | 12
          ...
A | 10 | 12
A | 11 | 12
A | 12 | 12
B | 1 | 138
B | 2 | 138
B | 3 | 138
B | 4 | 138
          ...
B | 136 | 138
B | 137 | 138
B | 138 | 138


 类似资料:
  • 问题内容: 我想知道是否可以限制SQL请求的结果? 例如,最多只返回以下内容的50行: 谢谢。 问题答案: 是的,这是可能的。这在数据库引擎之间有所不同。 Postgres: SQL Server: …

  • 问题内容: 我有一个包含以下架构的数据库,该架构描述了与多个顾问联系的个人之间的链接,这些顾问与多个组织有联系 业务需求是启用对所有这些概念的搜索并围绕AdvisorId组织结果。例如,搜索结果的显示可能如下 为此,我们针对这些概念及其之间的关系创建了一个扁平化的表格。因此,相同的AdvisorId将出现在多行中 当我搜索字符串时,我想确保AdvisorId周围的 所有 记录都将一起返回,而不管各

  • 问题内容: 我正在使用以下内容将检索到的值添加到类中。所有值都将添加到该类的属性中,但是我正在使用compisition(在类中具有class的对象),并且在输出中不显示任何内容。 地址类别如下: 问题答案: 像这样的作品: 将ResultSet行转换为JavaBean。此实现使用反射和BeanInfo类将列名与bean属性名匹配。属性根据以下几个因素与列匹配: 该类具有与列同名的可写属性。名称比

  • 问题内容: 我一直在四处寻找,但还没有找到如何执行此操作的方法(尽管在分析其性能方面发现了很多内容!!) 我想执行一次选择,该操作返回几列数据,然后返回另一个表中的相关行的嵌套表(实际上是同一张表本身连接在一起,但我认为这是无关紧要的)。 所以数据是这样的: 这个想法是执行选择,以查找所有可能与注册帐户相关的未注册人员。 所以结果看起来像 我可以使用SQL来处理所有选择条件,并且有一个查询返回可以

  • 在我们的应用程序中,我们有外部源来处理数据并将数据插入数据库,以及应用程序使用的相同数据库。因此,数据库超载。 为了避免这种情况,我们使用了两台服务器,一台用于处理数据,另一台用于应用程序。在第一台服务器中进行处理后,我们通过复制过程将数据移动到另一台服务器。 现在,我们想将整个设置移动到Azure SQL PaaS。截至目前,Azure PaaS中不可能进行复制。 请帮助我们解决这个问题。

  • 我正在尝试将我的计算结果重定向到数据文件中,这是我的函数: 我希望将此函数的结果保存在数据文件(.dat)中 我只知道如何编写文本或少量参数,但不知道如何编写函数结果。