Kann in SQL Server 2008 eine bestimmte ORDER BY ausgewählt werden?

9

Ich habe eine Tabelle, die Tage und Zeiten enthält, die Tagesspalte, kann einen beliebigen der sieben Tage enthalten und sie werden auf den Datentyp varchar gesetzt. Da diese Tabelle Buchungszeiten für einen Kunden enthält, möchte ich alle Tage aus der Tabelle auswählen, in der die ID übereinstimmt, und ich möchte von Montag bis Sonntag nach Tagen sortieren. Ich hatte gehofft, dass ich etwas zu dieser Abfrage hinzufügen könnte, um manuell die Reihenfolge auszuwählen, in der die Ergebnisse zurückkommen:

%Vor%

Das funktioniert natürlich nicht, aber ich wollte nur zeigen, was ich erreichen möchte. Der Kunde benötigt nicht unbedingt jeden Tag Hilfe, ich möchte nur die Tage anzeigen, in denen er gebucht wurde.

Die Sortierung nach DESC und ASC hilft nicht an Wochentagen, ich würde mich über Tipps freuen, wie Sie das erreichen können.

Danke.

    
deucalion0 18.04.2012, 11:07
quelle

2 Antworten

28

Hmm .. das ist ekelhaft, die Tage werden als 'Montag', 'Dienstag' usw. gespeichert?

Wie auch immer, tu das einfach:

%Vor%     
Michael Buen 18.04.2012, 11:12
quelle
1

IMHO Sie haben keinen Grund, Monday, Tuesday, etc ... zu speichern. Wenn Sie den Datums- oder Datetime-Wert speichern, können Sie immer den Wochentagnamen aus diesen Daten zum Abfragezeitpunkt extrahieren, wenn Sie ihn benötigen - entweder mit DATENAME in Ihrer Abfrage oder verwenden Sie die Funktionalität in Ihrer Präsentationsebene. Die damit verbundenen Kosten rechtfertigen es nicht, IMHO separat zu speichern. Und Sie sollten immer noch in der Lage sein, die nativen Datums- / Datetime-Daten korrekt zu sortieren.

    
Aaron Bertrand 18.04.2012 12:06
quelle

Tags und Links