我有一个 T-SQL 查询,它从一个表中获取数据并将其复制到一个新表中,但只复制满足特定条件的行:
SELECT VibeFGEvents.*
INTO VibeFGEventsAfterStudyStart
FROM VibeFGEvents
LEFT OUTER JOIN VibeFGEventsStudyStart
ON
CHARINDEX(REPLACE(REPLACE(REPLACE(logName, 'MyVibe ', ''), ' new laptop', ''), ' old laptop', ''), excelFilename) > 0
AND VibeFGEventsStudyStart.MIN_TitleInstID <= VibeFGEvents.TitleInstID
AND VibeFGEventsStudyStart.MIN_WinInstId <= VibeFGEvents.WndInstID
WHERE VibeFGEventsStudyStart.excelFilename IS NOT NULL
ORDER BY VibeFGEvents.id
使用该表的代码依赖于它的顺序,上面的副本没有保留我期望的顺序。 IE。新表中的行VibeFGEventsAfterStudyStart
不是单调递增的VibeFGEventsAfterStudyStart.id
列复制自VibeFGEvents.id
.
在 T-SQL 中,我如何保留行的顺序VibeFGEvents
in VibeFGEventsStudyStart
?
我知道这有点旧了,但我需要做类似的事情。我想将一个表的内容插入到另一个表中,但顺序是随机的。我发现我可以通过使用来做到这一点select top n
and order by newid()
。如果没有“top n”,则不会保留顺序,第二个表的行顺序与第一个表的顺序相同。然而,对于“top n”,顺序(在我的例子中是随机的)被保留。我使用的“n”值大于行数。所以我的查询是这样的:
insert Table2 (T2Col1, T2Col2)
select top 10000 T1Col1, T1Col2
from Table1
order by newid()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)