Как найти строку после запроса? - PullRequest
0 голосов
/ 10 мая 2009

У меня есть запрос, и мне нужно найти номер строки, на которую запрос возвращает ответ. У меня нет встречного поля. Как мне это сделать?

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 10 мая 2009
SELECT 
  ROW_NUMBER() OVER (<your_id_field_here> ORDER BY <field_here>) as RowNum,
  <the_rest_of_your_fields_here>
FROM
  <my_table>
0 голосов
/ 11 мая 2009

У меня есть запрос, и мне нужно найти номер строки, в которой запрос возвращает ответ. У меня нет счетчика поле. как я это делаю?

Если я правильно понимаю ваш вопрос, у вас есть какой-то запрос, который возвращает строку или несколько строк (ответ, ответы), и вы хотите, чтобы номер строки ассоциировался с «ответом»

Как вы сказали, у вас нет счетчика, поэтому вам нужно следующее:

  • определиться с критериями заказа
  • добавить счетчик
  • выполнить запрос

Было бы действительно полезно, если бы вы предоставили более подробную информацию на свой вопрос (ы). Если вы подтвердите, что я правильно понял ваш вопрос, я добавлю пример кода

0 голосов
/ 11 мая 2009

создать таблицу t1 (N1 int, N2 int)

вставить в t1 выберите 200 300

вставить в t1 выберите 200 300

вставить в t1 выберите 300 400

вставить в t1 выберите 400 400 ..... ......

выберите row_number () более (порядок по [N1]) RowNumber, * из t1

0 голосов
/ 10 мая 2009

Если у вас есть первичный ключ, вы можете использовать этот метод в SQL Server 2005 и выше:

SELECT 
  ROW_NUMBER() OVER (ORDER BY PrimaryKeyField) as RowNumber,
  Field1,
  Field2
FROM
  YourSourceTable

Если у вас нет первичного ключа, вам может потребоваться скопировать вашу таблицу в таблицу mermory (или временную таблицу, если она очень большая), используя такой метод:

DECLARE @NewTable table (
    RowNumber BIGINT IDENTITY(1,1) PRIMARY KEY,
    Field1 varchar(50),
    Field2 varchar(50),
)

INSERT INTO @NewTable
    (Field1, Field2)
SELECT
    Field1,
    Field2
FROM
    YourSourceTable

SELECT
    RowNumber,
    Field1,
    Field2
FROM
    @NewTable

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

Кроме того, на этом этапе я бы предложил добавить первичный ключ к каждой вашей таблице, если у них ее еще нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...