SQL Server : copy a table into another table in reverse order

标签 sql sql-server database

我有一个表,较新的数据以 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/

相关文章:

sql - 有人可以在这个简单的查询中找到语法错​​误吗?

sql - SSMS 中的“脚本表为”不保留排序规则

sql-server - 对输出子句 sql 进行过滤

python - 无法使用 python 向 mysql 插入值

php - 向 PHP 添加动态选项从 SQL Server 数据库填充下拉列表

sql - 通过插入和计算触发

mysql - SELECT subCategory 等于parentCategory = 外部表中的值

sql - WPF比较两个数据表以查找匹配值

mysql - 数据库: Making a Log of actions,如何处理各种引用?

java - 如何将时间戳插入 SQLite 数据库列?使用函数时间 ('now' )?