我有一个表,较新的数据以 id=1
开头,并增加 id
,我们得到较旧的数据,现在的问题是,因为新数据将每天都在添加,而且想从新到旧的显示结果,就会有问题。我想反转表格的顺序,即使添加新数据后,我也可以从较新的数据显示到较旧的数据。
有人知道我应该做什么吗?
最佳答案
您可以对发生切换的任意数字进行硬编码。假设您现在有 1,000 行(因此 #1 是最新的,但添加后 #1001 将是最新的):
SELECT (CASE WHEN id < 1000 THEN id * -1 ELSE id END) AS sort_order
ORDER BY sort_order DESC
可能更好的解决方案是添加时间戳列,因为依赖自动生成的列来获取真实数据并不好。
编辑
要创建新表,请使用上面的插入内容。
INSERT INTO [new_table] (col1,col2,col3, ...)
SELECT (col1, col2, col3, ...)
FROM [old_table]
ORDER BY (CASE WHEN id < 1000 THEN id * -1 ELSE id END) DESC
关于SQL Server : copy a table into another table in reverse order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996240/