我有一个 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
使用该表的代码依赖于其顺序,而上面的复制没有保留我期望的顺序。即从 VibeFGEvents.id
复制到 VibeFGEventsAfterStudyStart.id
的行在新表格 VibeFGEventsAfterStudyStart
中不是单调递增的。
在T-SQL中,我如何保留从 VibeFGEvents
到 VibeFGEventsStudyStart
的行的顺序?
VibeFGEventsStudyStart.MIN_TitleInstID
并查看所有其他名称是否相同是很痛苦的。 - Royi NamirSELECT
语句中显式定义一个ORDER BY
子句时,结果集才能被排序。 - marc_s