【发布时间】:2019-05-04 15:37:25
【问题描述】:
假设我有一个具有当前 ID 的表。
CREATE TABLE F
(
id int,
s char
)
INSERT INTO F VALUES(10)
还有另一个表,其中的行可以替换 id 或更新某些内容。
CREATE TABLE M
(
id int,
old_id int,
new_id int,
type char,
s char,
d date
)
type 中的 where 表示它是替换 id 还是更新 s。
INSERT INTO dbo.M (id, old_id, new_id, type, d, s)
VALUES
(2, 20,NULL,'U', '2018-01-01', 'a'),
(3, 10,20, 'R', '2018-01-01', NULL),
(4, 10,NULL,'U', '2018-01-01', 'b'),
(5, 20,NULL,'U', '2018-01-01', 'c'),
(6, 30,NULL,'U', '2018-01-01', 'd'),
(7, 20,30, 'R', '2018-01-01', NULL),
(8, 30,NULL,'U', '2018-01-01', 'e'),
(9, 40,NULL,'U', '2018-01-01', 'f')
如果我想对行进行排序,使与 F 中的 id 匹配的“U”排在第一位,然后是与 id 匹配的“R”,那么接下来的行应该按每个“R”设置的 id 进行排序。
所以这个顺序是 4、3、2、5、7、8 或 4、3、5、2、7、8
【问题讨论】:
标签: sql sql-server dml