2014-01-19 2 views
0

Я пытаюсь выбрать и вставить X строк в таблицу temp при каждом выполнении, я пронумеровал строки. Тем не менее, я пытался использовать PERCENT и TOP, но не получал желаемых результатов.Выбор X Количество строк или меньше, если X количество строк недоступно

Примечание: Я не пытаюсь получить определенное количество строк между определенными номерами. Мне просто нужно получить номер исправления, и если количество доступных строк ниже запроса на выбор, тогда получите меньше, но не превышайте.

я присвоил номера строк, как это:

WITH GetRecordByIncrement AS 
(
SELECT 
    [RowNumber] = ROW_NUMBER() OVER (ORDER BY UserID ASC) 
    ,[Column1] 
    ,[Column2] 
    ,[Column3] 
    FROM MySchema.MyTable 
) 

Как бы я получить, например: 100 или меньше строк? Это не работает, используя номер строки.

+0

Я должен что-то отсутствует. Почему «ТОП» не работает для вас? 'SELECT TOP 100 Column1, Column2, Column3 FROM MySchema.MyTable' –

+0

Да, вы правы, я использовал TOP неправильно, в результате чего некоторые записи не учитывались. Я переключил TOP, чтобы возвращать записи на основе уникального идентификатора. Спасибо за указание на это. – Asynchronous

+0

Извините, вы уже заметили, что я забыл предложение 'ORDER BY' в моем примере:' SELECT TOP 100 Column1, Column2, Column3 FROM MySchema.MyTable ORDER BY UserID' –

ответ

0

Что-то, как это будет работать:

DECLARE @table TABLE (c1 INT, c2 INT, c3 INT); 

; 
WITH MyRows 
      AS (SELECT TOP 100 
         ROW_NUMBER() OVER (ORDER BY message_id) AS RowNum , 
         message_id , 
         severity 
       FROM  sys.messages 
      ) 
    INSERT INTO @Table 
      (c1 , 
       c2 , 
       c3 
      ) 
      SELECT RowNum , 
        message_id , 
        severity 
      FROM MyRows; 

SELECT * 
FROM @table; 
0

Попробуйте:

WITH GetRecordByIncrement AS 
(
SELECT 
    [RowNumber] = ROW_NUMBER() OVER (ORDER BY UserID ASC) 
    ,[Column1] 
    ,[Column2] 
    ,[Column3] 
    FROM MySchema.MyTable 
) 
select * from GetRecordByIncrement where [RowNumber]<=desirednumber 

Смежные вопросы