22,209
社区成员
发帖
与我相关
我的任务
分享
--测试数据
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([id] nvarchar(21),[time] Date)
Insert #A
select N'a','2016' union all
select N'b','2016'
GO
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([test] int,[id] nvarchar(21),[time] Date)
Insert #B
select 666,N'a','2017' union all
select 666,N'b','2017'
Go
--测试数据结束
;WITH ctea AS (
SELECT NULL AS test,id,time,ROW_NUMBER()OVER(ORDER BY id) AS num FROM #A
UNION
SELECT *,ROW_NUMBER()OVER(ORDER BY id) AS num FROM #B
)
SELECT test,id,time FROM ctea ORDER BY num,time DESC
USE tempdb
GO
IF OBJECT_ID('a') IS NOT NULL DROP TABLE a
IF OBJECT_ID('b') IS NOT NULL DROP TABLE b
CREATE TABLE a(id VARCHAR(20),[time] INT)
CREATE TABLE b(test INT,id VARCHAR(20),[time] INT)
SET NOCOUNT ON
INSERT INTO a(id,[time]) VALUES('a',2016)
INSERT INTO a(id,[time]) VALUES('b',2016)
INSERT INTO b(test,id,[time]) VALUES(666,'a',2017)
INSERT INTO b(test,id,[time]) VALUES(666,'b',2017)
SELECT * FROM (
SELECT NULL AS test,id,[time] FROM a
UNION ALL
SELECT test,id,[time] FROM b
) AS t
ORDER BY t.id ASC
/*
test id time
NULL a 2016
666 a 2017
666 b 2017
NULL b 2016
*/