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

SQL如何创建重复记录?

步博厚
2023-03-14
问题内容

我正在看一个问题:从SQLite表获取随机值,这使我想知道是否可以使用SQL复制记录。更具体地说,有没有一种可以转换这些记录的构造:

id| name| count
---------------
 1| Anne|     3
 2|  Joe|     2

进入:

id| name
--------
 1| Anne
 1| Anne
 1| Anne
 2|  Joe
 2|  Joe

后者中的AnneJoe记录的计数与count前一组记录中的对应值匹配。

可以用SQL完成吗?如果是这样,怎么办?

编辑:

Lucero问什么SQL方言?任何真的,但理想情况下,最不可知论的方法都是最好的。

另一个编辑:

是否可以在sqlite中的单个SQL语句中完成?


问题答案:

您可以使用“数字”表(适用于各种操作):

CREATE TABLE num
( i UNSIGNED INT NOT NULL
, PRIMARY KEY (i)
) ;

INSERT INTO num (i)
VALUES
  (1), (2), ..., (1000000) ;

然后:

SELECT 
    t.id, t.name
FROM 
        tableX AS t
    JOIN
        num
            ON num.i <= t."count"

警告
:这种方法当然有局限性。一旦count列中的值超过Numbers表中存储的最大值,查询将不会生成所有需要的行。如果count列中的值是无界的,则仅迭代或递归解决方案(如其他两个答案)可以工作。



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 自动创建requirements.txt (8个答案) 2年前关闭。 我想知道如何为我的Python 3应用程序创建合适的requirements.txt? 问题答案: 在命令提示符下键入以下行

  • 我在类方法中使用active record import gem来导入从csv文件读取的列表数组,如下代码所示: 根据active record导入文档,我正在尝试将列表的标题和VIN字段设置为冲突目标。如果列表的VIN字段发生冲突,我希望进行更新,而不是创建。 但是现在,每次我运行CSV上传时,它都在从isting.import创建一个新的列表,而不检查它是否冲突。 我哪里出错了?

  • 这是我的原始表格: 预期表: 我无法向表中添加新列。

  • 我使用“Create database Gameshop;”创建了一个数据库。对于我的类和我需要把它作为一个'.sql'文件交出来,但是,我不知道去哪里找这个文件或者如何创建它。 我担心如果我尝试了什么而失败了,我会失去我所有的工作。谢谢你!