Sie berühren hier auf etwas Grundsätzliches über das relationale Modell. In Datenbanken gibt es im Allgemeinen keine intrinsische Ordnung. Wenn Sie eine Datenbestellung immer dann durchführen möchten, wenn Sie sich eine Tabelle ansehen, müssen Sie diese Reihenfolge explizit angeben.
Also in einem allgemeinen Sinn, Sie fragen nach dem Unmöglichen. Sie können nicht nur eine Tabelle UPDATE
und erhalten eine automatische Bestellung von jeder Abfrage, die Sie daran vornehmen. Aber in einer Query-by-Query Sinn, könnten Sie immer "ORDER BY item1ID, sortOrder
" in jeder SELECT
Anweisung setzen, die Sie auf die Tabelle anwenden.
In SQL Server 2005 können Sie einen Blick schreiben und an Ihren Kunden präsentieren, diese alte Hack:
SELECT TOP 100 PERCENT
item1ID, item2ID, sortOrder -- and all the other columns
FROM YourTable
ORDER BY item1ID, sortOrder;
Es gibt Möglichkeiten, eine solche Sicht aktualisierbar, aber Sie werden für die Forschung brauchen das allein. Es ist nicht schwer zu tun.
Wenn Sie nie Daten in diese Tabelle einfügen oder ändern möchten und Sie die Daten erneut in eine Tabelle importieren möchten, können Sie Ihre Tabelle mit einer Identität definieren und dann Ihre Daten in die Tabelle einfügen in der richtigen Reihenfolge. Dann würden Sie immer nach der einen Identitätsspalte bestellen. Dies würde funktionieren, wenn Ihr Client die Daten immer in einem Programm anzeigt, das die Sortierung nach einer einzelnen Spalte zulässt. (BTW, benutzen Sie nie die IDENTITY
Funktion für diesen Zweck. Es wird nicht funktionieren.)
CREATE TABLE YourTable (
SingleSortColumn INT IDENTITY(1,1) NOT NULL,
...
);
INSERT INTO YourTable (
item1ID, item2ID, sortOrder -- everything except the SingleSortColumn
)
SELECT -- all your columns
INTO YourTable
FROM yadda yadda yadda
ORDER BY item1ID, sortOrder;
Hoffnung, die hilfreich ist. Tut mir leid, wenn ich pedantisch bin.
Das ist eine gute Möglichkeit, SortOrder zu ändern, um nach der zweiten Spalte über der ersten Spalte zu sortieren. Es war nicht klar, dass das das war, was das Poster verlangte, weil die Beispieldaten nicht nach den ersten beiden Spalten sortiert waren. Trotzdem, das ist eine großartige Antwort. – eksortso
Bitte werfen Sie einen Blick auf die folgende Frage: http://stackoverflow.com/questions/1934738/custom-sort-order-with-sql-server-and-net-entity-framework – Shimmy