SQL查询中的并集和偏移量

问题描述

我需要基于从两个表(T1和T2)获取的结果来合并分页。因此,我需要结合UNION和OFFSET TOGETHER。假设我在表T1中具有Field1和Field2,在表T2中具有Field3和Field 4。我需要获取某些n行偏移某些p行。我该怎么办。

请注意数据库sql Server

解决方法

示例架构和值:

CREATE TABLE T1
 ([field1] varchar(10),[field2] varchar(10));

INSERT INTO T1
  ([field1],[field2])
VALUES
 ('Value11','Value12'),('Value21','Value22'),('Value31','Value32');

CREATE TABLE T2
 ([field3] varchar(10),[field4] varchar(10));

INSERT INTO T2
 ([field3],[field4])
VALUES
 ('Value41','Value42'),('Value51','Value52'),('Value61','Value62');

示例查询您的需求

select * from (select field1 as f1,field2 as f2 from T1
union all
select field3 as f1,field4 as f2 from T2) as TAB1
order by f1 offset 0 rows fetch next 2 rows only;

尝试一下

http://sqlfiddle.com/#!18/f9878/4