Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пейджинг и колличество всех элементов в выборке  [new]
Alex_BBB
Member

Откуда:
Сообщений: 1197
Есть большой запрос, пейджинг которого я осуществялю следующим способом

WITH PagedQuery AS (
	// Большой запрос
	SELECT 
		ROW_NUMBER() OVER (ORDER BY LTRIM(pp.PR_NAME)) RowNumber
		, pp.PR_KEY
		, pp.PR_NAME
		...
)
SELECT distinct PR_KEY, PR_NAME  FROM PagedQuery WHERE RowNumber BETWEEN 1 AND 10;

Каким образом можно узнать сколько элементов было в первоначальном большом запросе?
(Не выполняя этот огромный запрос второй раз)
31 июл 09, 16:06    [7485574]     Ответить | Цитировать Сообщить модератору
 Re: Пейджинг и колличество всех элементов в выборке  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Получить количество отфильтрованных записей не делая запрос дважды
31 июл 09, 16:08    [7485584]     Ответить | Цитировать Сообщить модератору
 Re: Пейджинг и колличество всех элементов в выборке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31161
Alex_BBB
Есть большой запрос, пейджинг которого я осуществялю следующим способом

WITH PagedQuery AS (
	// Большой запрос
	SELECT 
		ROW_NUMBER() OVER (ORDER BY LTRIM(pp.PR_NAME)) RowNumber
		, pp.PR_KEY
		, pp.PR_NAME
		...
)
SELECT distinct PR_KEY, PR_NAME  FROM PagedQuery WHERE RowNumber BETWEEN 1 AND 10;

Каким образом можно узнать сколько элементов было в первоначальном большом запросе?
(Не выполняя этот огромный запрос второй раз)
WITH PagedQuery AS (
	// Большой запрос
	SELECT 
		ROW_NUMBER() OVER (ORDER BY LTRIM(pp.PR_NAME)) RowNumber
		, pp.PR_KEY
		, pp.PR_NAME
		...
)
SELECT distinct PR_KEY, PR_NAME, (select count(*) from PagedQuery) FROM PagedQuery WHERE RowNumber BETWEEN 1 AND 10;
31 июл 09, 16:31    [7485706]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить