hussy rao Ответов: 4

вопрос в sql server


Привет..я хочу N-ю строку из выбранной таблицы без использования какого-либо имени столбца.Может ли кто-нибудь help..in sql server.

4 Ответов

Рейтинг:
26

uspatel

Использовать имя столбца в порядке

SELECT * FROM
(
   SELECT empbirth.*, ROW_NUMBER() OVER (order by name) AS RowNum from empbirth
) sortly
WHERE RowNum =8

но если вы не хотите использовать имя col, то вы можете попробовать как
SELECT * FROM
(
   SELECT empbirth.*, ROW_NUMBER() OVER (order by (select top 1 column_name from information_schema.columns
 where table_name = 'empbirth')) AS RowNum from empbirth
) sortly
WHERE RowNum =8

Надеюсь, это решит вашу проблему


hussy rao

Спасибо.. Но это работает в последних версиях sql server2008, а не в 2000,2005..спасибо

uspatel

В sql server 2000 отсутствует функция ROW_NUMBER ().
но вы можете искать альтернативы ROW_NUMBER () в Google...

Рейтинг:
1

CRDave1988

Я Надеюсь, Что Это Поможет U.

http://blog.lysender.com/2010/10/sql-server-select-nth-row/[^]

хороший день


Рейтинг:
1

AditSheth

Вы можете использовать

ROW_NUMBER()
и получить N-й ряд


hussy rao

Извините, сэр, я не получаю результата..

Рейтинг:
1

Neha Ambasta

Здесь n - номер строки.

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownum,
    columns
  FROM tablename
) AS foo
WHERE rownum <= n


Надеюсь, это поможет.


NotPolitcallyCorrect

Этот вопрос был задан и на него был дан ответ пять лет назад.