SQL Server: как получить номер строки в множественном списке - PullRequest
0 голосов
/ 07 мая 2018

Я получаю неправильный номер строки ошибки при использовании множественного выбора

Первый запрос получает правильный номер строки

SELECT num
FROM (SELECT ItemId, CommentId,ROW_NUMBER() OVER (ORDER BY CreatedDate desc) AS num
      From ItemComments
      where ItemId = 10
    ) AS numbered
WHERE numbered.CommentId =100

Второй запрос получает правильный номер строки

SELECT num
FROM (SELECT ItemId, CommentId, ROW_NUMBER() OVER(ORDER BY CreatedDate desc) AS num
      From ItemComments
      where ItemId = 20
    ) AS numbered
WHERE numbered.CommentId =200

Когда я пытался использовать оба вышеуказанных значения в одном запросе, я получил неправильный номер строки

Третий запрос, который получает неправильный номер строки

SELECT num
FROM (SELECT ItemId, CommentId, ROW_NUMBER() OVER(ORDER BY createddate desc) AS num
      From ItemComments
      where ItemId in(20,10)
     ) AS numbered
WHERE numbered.CommentId in (200, 100)

Пожалуйста, помогите мне получить правильный номер строки в множественном выборе

Спасибо

enter image description here

1 Ответ

0 голосов
/ 07 мая 2018

Вам просто нужно partition by:

SELECT num
FROM (SELECT ItemId, CommentId,
            ROW_NUMBER() OVER (PARTITION BY ItemId ORDER BY createddate desc) AS num
      From ItemComments
      where ItemId in (20, 10)
     ) numbered
WHERE numbered.CommentId in (200, 100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...