Объединение и смещение в SQL-запросе

#offset

#смещение

Вопрос:

Мне нужно включить разбивку на страницы на основе результатов, полученных, скажем, из двух таблиц (T1 и T2). Следовательно, мне нужно объединить ОБЪЕДИНЕНИЕ и СМЕЩЕНИЕ ВМЕСТЕ. Допустим, у меня есть Field1 и Field2 в таблице T1, Field3 и Field 4 в таблице T2. Мне нужно получить определенные n строк, смещенных на определенные p строк. Как я могу это сделать.

Пожалуйста, обратите внимание, что база данных — это SQL Server

Ответ №1:

Пример схемы и значений:

 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

Комментарии:

1. Спасибо. Это решило мою проблему. Еще раз огромное спасибо