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

Откуда:
Сообщений: 19
SQL Server 2005
Есть таблица Колонка1. Нужно выбрать не более 10 (например) строк из выбранного множества (также по условию).
Вот такой запрос

SELECT *
FROM ( SELECT
ROW_NUMBER() OVER ( ORDER BY Колонка1.Дата_Время) num
FROM Колонка1
WHERE
day(Колонка1.Дата_Время)=1
) a
WHERE num between 1 and 10

Получаю:
1
2
3
4
5
6

Так и есть - шесть записей на 1-й день
Как вывести значение Колонка1.Дата_Время по каждому num ?
19 июл 13, 18:16    [14591348]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
beginer_2,

кто мешает во внутреннем запросе кроме row_number-а указать ещё и нужные поля из исходной таблицы?
19 июл 13, 18:32    [14591410]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

Да вроде никто,но почему-то на такой запрос

SELECT *
FROM ( SELECT
ROW_NUMBER() OVER ( ORDER BY Колонка1.Дата_Время) num,
Колонка1.Дата_Время #DateTime#
FROM Колонка1
WHERE
day(Колонка1.Дата_Время)=1
) a
WHERE num between 1 and 10


ответ такой:

DateTime=
1
2
3
4
5
6

вот я и думаю, чего не так?
19 июл 13, 18:39    [14591438]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
beginer_2,

"не верю"(с).
Если все написано именно так, как написано, то где поле NUM в итоговой выборке?
19 июл 13, 18:43    [14591455]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

Причем если поставить внутренний запрос отдельно- все работает

Получаю:
1
DateTime=2013-03-01 12:21:11
2
DateTime=2013-03-01 12:21:21
3
DateTime=2013-03-01 12:22:04
4
DateTime=2013-03-01 12:22:06
5
DateTime=2013-03-01 12:22:08
6
DateTime=2013-03-01 16:30:29
19 июл 13, 18:43    [14591457]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

вот отдельный запрос.

(оболочка: ТрейсМоуд6 браузер запросов)

К сообщению приложен файл. Размер - 34Kb
19 июл 13, 18:50    [14591486]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

а вот внутренний

К сообщению приложен файл. Размер - 30Kb
19 июл 13, 18:52    [14591497]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
beginer_2,

Есть подозрение, что сервер тут ни при чем.
Для ради проверки этого подозрения поменяй во внутреннем подзапросе местами поля num и свое ДатаТиме, посмотри чего получится ;)
19 июл 13, 19:19    [14591590]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
Ну и если результат будет "другой", то задавай вопросы своему "ТрейсМоуд6 браузер запросов"
19 июл 13, 19:21    [14591608]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

Поменял, результат другой.
Задал вопрос-а в ответ (пока) тишина...

Спасибо.
22 июл 13, 10:17    [14597392]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
Добрый Э - Эх,

Как-то по-другому написать запрос для выполнения постраничной выборки данных не посоветуете?
22 июл 13, 11:39    [14597917]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
beginer_2,

ну разве только TOP N WITH TIES прикрутить...
22 июл 13, 11:58    [14598128]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
Добрый Э - Эх
Guest
вот только не помню, есть оно в 2005-м или нет...
22 июл 13, 12:19    [14598307]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Добрый Э - Эх
вот только не помню, есть оно в 2005-м или нет...
Что - оно? TOP WITH TIES? Оно и в 6.5 было. Наверно, и до этого было.
А вот VALUES(...),(...),... придётся заменить на SELECT UNION ALL
22 июл 13, 12:32    [14598423]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
beginer_2
Member

Откуда:
Сообщений: 19
iap,

а пример можно?
22 июл 13, 12:42    [14598504]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с ROW_NUMBER()  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
beginer_2
iap,

а пример можно?
пример чего?
22 июл 13, 12:44    [14598525]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить