2009-05-10 11 views
0

J'ai une requête, et j'ai besoin de trouver le numéro de ligne que la requête renvoie la réponse. Je n'ai pas de compteur. Comment fait-on ça?Comment trouver une ligne après une requête?

Merci d'avance.

+1

regardez ce http://databases.aspfaq.com/database/how-do-i-return-row-numbers-with- my-query.html –

+1

Pouvez-vous poster un exemple de la requête que vous essayez d'exécuter? – Jeremy

Répondre

2
SELECT 
    ROW_NUMBER() OVER (<your_id_field_here> ORDER BY <field_here>) as RowNum, 
    <the_rest_of_your_fields_here> 
FROM 
    <my_table> 
0

Si vous avez une clé primaire, vous pouvez utiliser cette méthode sur SQL Server 2005 et plus:

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

Si vous ne disposez pas d'une clé primaire, ce que vous avez à faire est dupliquer votre table dans une table de mermory (ou une table temporaire si elle est très grande) en utilisant une méthode comme ceci:

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 

La part belle à ce sujet, est que vous serez en mesure de détecter des lignes identiques si votre source La table n'a pas de clé primaire.

Aussi, à ce stade, je suggère d'ajouter une clé primaire à chaque table que vous avez, si elles n'en ont pas déjà.

0

créer la table T1 (N1 int, N2 int)

insert dans t1 sélectionner 200.300

insert dans t1 sélectionner 200.300

insert dans t1 sélectionner 300.400

insert en t1 sélectionnez 400,400 ..... ......

select row_number() plus (par ordre [N1]) RowNumber, * de t1

0

J'ai une requête, et je dois trouver le numéro de ligne que la requête renvoie la réponse . Je n'ai aucun compteur domaine. comment je le fais?

Si je comprends bien votre question, vous avez une sorte de requête qui renvoie une ligne, ou quelques lignes (réponse, des réponses) et vous voulez avoir un des associés de numéro de ligne avec une « réponse »

Comme vous dit que vous n'avez pas contre-champ donc ce que vous devez pour est le suivant:

  • décident des critères de classement
  • ajouter le compteur
  • exécuter la requête

Il serait vraiment utile si vous avez fourni plus de détails à votre question (s). Si vous confirmez que je comprends votre question correctement, je vais ajouter un exemple de code

Questions connexes