Sotierung in Query Analyser 8.00.2039
-
Dienstag, 12. Juni 2012 08:24
Hallo,
Führe ich folgende Abfage im Query Analyser aus
SELECT PositionsID
FROM PositionsKopie
WHERE (Firma = 3)
ORDER BY PositionsID DESCdann wird mit die kleinste PositionsID als erster Datensatz ausgewiesen, was ich nicht wollte.
Lass ich "DESC" weg, dann bekomme ich die größte PositionsID als erster Datensatz ausgewiesen, was ich wollte.
SELECT PositionsID
FROM PositionsKopie
WHERE (Firma = 3)
ORDER BY PositionsIDIch verstehe aber nicht warum, kann mir das wer erklären, weil im Enterprise Manager 5.2.R2 ist das umgekehrt!
lg
Alle Antworten
-
Dienstag, 12. Juni 2012 09:53
Hallo azwinzds1
azwinzds1 wrote:
Führe ich folgende Abfage im Query Analyser aus
SELECT PositionsID
FROM PositionsKopie
WHERE (Firma = 3)
ORDER BY PositionsID DESC
dann wird mit die kleinste PositionsID als erster Datensatz ausgewiesen,
was ich nicht wollte.Welchen Datentyp hat PositionsID. Kannst Du hier mal Beispiele geben? Wenn es eine Zahl ist, kommt sicher die grösste zuerst, nicht die kleinste. Ich vermute daher, dass es sich hier um ein Textfeld handelt.
Wenn es Text ist, dann hängt es wohl vom Textinhalt ab. Falls es ein Datum ist, dann wird das jüngste Datum zuerst ausgegeben.
Falls in dem Textfeld nur Zahlen drin sind, kannst Du mal folgendes versuchen:
... ORDER BY CAST(PositionsID AS INT) DESC
Gruss
Henry -
Dienstag, 12. Juni 2012 09:55Beantworter
Hallo,
bei absteigender Sortierung (DESC) wird die höchste PositionsID zuerst ausgegeben und die kleinste kommt zuletzt.
SQL wird immer vom SQL Server ausgeführt und so spielt es zunächst keine Rolle welches Programm verwendet wird.
Allerdings gibt es Programme die selbsttätig an den Ergebnissen "herumfummeln",
der SQL Server Query Analyzer tut so etwas nicht - Gott sei Dank - und der SQL Server EM eigentlich auch nicht.Damit Du nicht durch eigene Aktionen ein falsches Ergebnis zu sehen kommst,
verwende bitte mal die Text-Anzeige (STRG+T) anstatt das Grid (STRG+D).Gruß Elmar
-
Dienstag, 12. Juni 2012 11:30PositionsID hat den Datentyp int Größe 4 Bayte
-
Dienstag, 12. Juni 2012 12:35
PositionsID hat den Datentyp int Größe 4 Bayte
Führ mal bitte folgendes aus:
SELECT MIN( PositionsId ) FROM PositionsKopieDanach dann:
SELECT MIN( PositionsId ) FROM PositionsKopie WHERE Firma = 3
Wenn bei beiden das korrekte Ergebnis kommt, führt mal das hier aus:
SELECT TOP 100 PositionsID FROM PositionsKopie WHERE Firma = 3 ORDER BY PositionsID ASC
Danach dann:
SELECT TOP 100 PositionsID FROM PositionsKopie WHERE Firma = 3 ORDER BY PositionsID DESC
Wenn hierbei nicht immer das richtige Ergebnis kommen sollte, erklär mal bitte kurz, was genau Du mit Query Analyser meinst. Das bei SQL Server 2000 enthaltene Tool?
Was ist "Enterprise Manager 5.2.R2"?
---
Das Problem könnte hier beschrieben sein:
http://support.microsoft.com/kb/831675/DE
Allerdings setzt Du ja SP4 für SQL Server 2000 ein. Die Buildnummer 2039 ist zwar nicht die aktuellste, ggfs. wäre es daher sinnvoll, die passenden Hotfixes noch zu installieren. Siehe dazu:
http://support.microsoft.com/?kbid=894905
Dort ist dann auch wieder ein Problem beschrieben, dass evtl. bei dir zum tragen kommt.
http://support.microsoft.com/kb/925297
[Das Ergebnis kann in der falschen Reihenfolge sortiert werden, wenn Sie eine Abfrage ausführen, die die ORDER BY-Klausel, zum Sortieren einer Spalte in einer Tabelle in SQL Server 2000 verwendet]Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Dienstag, 12. Juni 2012 12:37Text-Anzeige (STRG+T) anstatt das Grid (STRG+D) am SQL Server Query Analyzer?
-
Dienstag, 12. Juni 2012 12:55Beantworter
Hallo,
drücke einfach mal die Tasten STRG+T und führe die Abfrage aus.
Gruß Elmar
- Bearbeitet Elmar BoyeMVP, Editor Dienstag, 12. Juni 2012 12:55
-
Dienstag, 12. Juni 2012 13:39
Hallo,
danke ich hab im SQL Server Query Analyzer die Tasten STRG+T gedrückt und
SELECT PositionsID
FROM PositionsKopie
WHERE (Firma = 3)
ORDER BY PositionsID DESCausgeführt und bekomme:
PositionsID
-----------
600000053
600000041
600000041
600000041
600000039
(5 row(s) affected)das was ich brauche ! Danke!!!
-
Dienstag, 12. Juni 2012 15:59Beantworter
Hallo,
Wenn sich die Reihenfolge wieder ändert wenn Du aufs Grid (mit STRG+D) wechselst,
schau mal bei den Einstellungen des Query Analysers nach,
ob dort bei der Ausgabe-Einstellungen etwas verstellt ist.
Ich habe den seit längerem nicht mehr installiert, so dass ich da keine genaueren Hinweise geben kann.
Gruß Elmar
-
Mittwoch, 13. Juni 2012 08:51
das was ich brauche ! Danke!!!
Aber da dir das Problem auch an anderen Stellen um die Ohren fliegen kann, solltest Du mal prüfen, ob das nur diese eine Tabelle betrifft oder ob das Problem generell besteht. Wenn letzteres, wäre es angebracht, die Hotfixes zu installieren und zu schauen, ob das Problem damit behoben ist.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Dienstag, 3. Juli 2012 16:25
Danke ich werde es prüfen und bekanntgeben- Als Antwort markiert azwinzds1 Dienstag, 30. April 2013 13:58

