【发布时间】:2020-06-20 16:48:11
【问题描述】:
我有一个名为 product 的表及其数据示例数据结构如下,
+-----------+-------------+-----------+
| ProductID | ProductName | SortValue |
+-----------+-------------+-----------+
| 1 | AA12 | 0 |
+-----------+-------------+-----------+
| 2 | AA10 | 0 |
+-----------+-------------+-----------+
| 3 | AA11 | 0 |
+-----------+-------------+-----------+
| 4 | AA13 | 0 |
+-----------+-------------+-----------+
| 5 | AA1 | 2 |
+-----------+-------------+-----------+
| 6 | AA2 | 1 |
+-----------+-------------+-----------+
| 7 | AA3 | 4 |
+-----------+-------------+-----------+
| 8 | AA4 | 3 |
+-----------+-------------+-----------+
| 9 | AA5 | 5 |
+-----------+-------------+-----------+
| 10 | AA6 | 6 |
+-----------+-------------+-----------+
我需要将此表数据插入另一个临时表,并使用其SortValue 进行排序。在这里您可以看到多个sortvalue 为0。那些0 包含SortValue 应该按其ProductName 插入到表的末尾。我的预期输出应该是,
+-----------+-------------+-----------+
| ProductID | ProductName | SortValue |
+-----------+-------------+-----------+
| 6 | AA2 | 1 |
+-----------+-------------+-----------+
| 5 | AA1 | 2 |
+-----------+-------------+-----------+
| 8 | AA4 | 3 |
+-----------+-------------+-----------+
| 7 | AA3 | 4 |
+-----------+-------------+-----------+
| 9 | AA5 | 5 |
+-----------+-------------+-----------+
| 10 | AA6 | 6 |
+-----------+-------------+-----------+
| 2 | AA10 | 0 |
+-----------+-------------+-----------+
| 3 | AA11 | 0 |
+-----------+-------------+-----------+
| 1 | AA12 | 0 |
+-----------+-------------+-----------+
| 4 | AA13 | 0 |
+-----------+-------------+-----------+
我该怎么做?我刚刚尝试过这样的事情。
DECLARE @tmp TABLE (
[ProductID] INT,
[ProductName] VARCHAR(50),
[SortValue] INT )
INSERT INTO @tmp
p.ProductID,p.ProductName,p.SortValue
SELECT FROm Product p ORDER by p.SortValue
【问题讨论】:
标签: sql-server sql-order-by sql-insert sql-server-2016 temp-tables