0

データベースには、次のような2つの列(Position、CarName)を持つテーブルcarがあります。

1 | BMW
2 | Mercedes
3 | Honda
4 | Toyota

テーブルは変更される可能性があるため、新しい行「Audi」を追加して、次のようにテーブルを並べ替える必要があります。

1 | Audi
2 | BMW
3 | Mercedes
4 | Honda
5 | Toyota

「ホンダ」を削除した後:

1 | BMW
2 | Mercedes
3 | Toyota

先頭の「ホンダ」行を移動した後 (1 番目の位置):

1 | Honda
2 | BMW
3 | Mercedes
4 | Toyota

2 番目の位置に「BMW」を移動した後:

1 | Mercedes
2 | BMW
3 | Honda
4 | Toyota

SQL Server で行う最善かつ正しい方法は何ですか。

ありがとう。

4

2 に答える 2

2

注文データがデータベース テーブルに格納されるのは、完全に DB エンジン次第です。それは予測できません。

変更できるのは、データが選択クエリで返される前に並べ替えられる方法です。order byそのために句を使用できます。

于 2013-02-17T11:37:43.123 に答える
2

そのようにしないでください -- SQL Server に Identity 列を処理させてください。このようなものが必要な場合は、を使用して次の SQL でビューを作成しますROW_NUMBER()

SELECT Row_Number() Over (Order By CarName) Rn, CarName
FROM YourTable
ORDER By CarName

これは、デモンストレーションを行うSQL Fiddleです。

お役に立てれば。

于 2013-02-17T11:38:26.970 に答える