如何从 table1 中选择前 500 行并将它们插入到 table2 中?

2024-04-02

我定义了完全相同的 2 个表:t2 和 t1。

t2 有 1000 行,t1 完全是空的。

如何从 t2 中选择前 500 行并将它们插入到 t1 中?


我将使用“emptyTable”和“populatedTable”,因为问题很混乱

重要的 TOP没有 ORDER BY 会给出 500 个任意行。表格从来不存在隐含或自然的顺序

INSERT INTO emptyTable
SELECT TOP 500 * 
FROM populatedTable
ORDER BY What -- need this to define TOP 500

这里缺乏列列表通常被定义为不好的做法,但只有在以下情况下才有效

  • 表格是相同的
  • 空表中没有 IDENTITY 列

Edit:

排序依据是required以保证行顺序。看看这些。它也在 ANSI 标准中

  • http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/05/20/without-order-by-there-is-no-default-sort-order.aspx http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/05/20/without-order-by-there-is-no-default-sort-order.aspx
  • http://blogs.msdn.com/b/conor_cunningham_msft/archive/2008/08/27/no-seatbelt-expecting-order-without-order-by.aspx http://blogs.msdn.com/b/conor_cunningham_msft/archive/2008/08/27/no-seatbelt-expecting-order-without-order-by.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 table1 中选择前 500 行并将它们插入到 table2 中? 的相关文章

随机推荐