2009-05-10 5 views
0

Ich habe eine Abfrage, und ich muss die Zeilennummer finden, dass die Abfrage die Antwort zurückgibt. Ich habe kein Zählerfeld. Wie mache ich es?Wie finde ich Zeile nach Abfrage?

Vielen Dank im Voraus.

+1

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

+1

Können Sie ein Beispiel für die Abfrage veröffentlichen, die Sie ausführen möchten? – Jeremy

Antwort

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

Wenn Sie einen Primärschlüssel haben, können Sie diese Methode auf SQL Server 2005 verwenden und bis:

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

Wenn Sie nicht über einen Primärschlüssel haben, was Sie ist zu tun haben kann duplizieren Sie Ihre Tabelle in eine Mermory Tabelle unter Verwendung eines Verfahrens wie diese (oder eine temporäre Tabelle, wenn es sehr groß ist):

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 

Der nette Teil über diese, dass Sie, wenn Sie Ihre Quelle identische Zeilen zu erkennen in der Lage ist Tabelle hat keinen Primärschlüssel.

Auch an dieser Stelle würde ich vorschlagen, einen Primärschlüssel zu jeder Tabelle hinzuzufügen, die Sie haben, wenn sie nicht bereits einen haben.

0

Tabelle T1 (N1 int, N2 int)

INSERT INTO t1 erstellen wählen 200.300

INSERT INTO t1 wählen 200.300

INSERT INTO t1 wählen 300.400

INSERT INTO t1 wählen 400.400 ..... ......

wählen row_number() über (Reihenfolge nach [N1]) RowNumber, * from t1

0

Ich habe eine Frage, und ich brauche die Zeilennummer zu finden, dass die Abfrage die Antwort zurück. Ich habe keinen Zähler Feld. wie ich es mache ?

Wenn ich Ihre Frage richtig verstanden habe, haben Sie irgendeine Art von Abfrage, die eine Zeile oder ein paar Zeilen (Antwort, Antworten) gibt, und Sie wollen mit einer „Antwort“ eine Zeilennummer Mitarbeiter haben

Wie Sie sagen, Sie haben kein Zählerfeld so, was Sie brauchen, um folgendes ist:

  • entscheiden über die Ordnungskriterien
  • fügen Sie den Zähler
  • führen Sie die Abfrage

Es würde wirklich helfen, wenn Sie mehr Details zu Ihrer Frage (n) zur Verfügung gestellt. Wenn Sie bestätigen, dass ich Ihre Frage richtig verstanden habe, füge ich ein Codebeispiel hinzu