0

sql-server テーブルに次の項目があります。(サイズ > 100K)

Name   Order
x      1
...    n
y      25
...    n
z      300
...    n

アイテムの順序を変更する場合、(z=25) すべてのアイテムを並べ替える必要があります (x=1、z=25、y=26) 私の解決策は、10 進数の列を使用し、次の式で新しい順序を計算することです: "(前の順序 + 次の順序) order) / 2" (x=1,z=24.5,y=25) 変更された注文項目。この解決策は問題ありませんが、小数の精度は変更命令ごとに増加します。(以前に変更した場合)

何か方法はありますか?

4

1 に答える 1

1

リストをデータ構造として使用する必要があります。リスト内のデータは順序付けられているため、y の前に「z」を挿入すると、次のようになります。

MyList.Remove('z')
MyList.Insert(MyList.IndexOf('y'), 'z');

次に、リストが並べ替えられます。

MyList.IndexOf('z');  //will return 25
MyList.IndexOf('y');  //will return 26

これらの値には、次の方法でアクセスできます。

MyList[25];  //will return 'z'
MyList[26];  //will return 'y'

List は 1 からではなく 0 からインデックス付けされていることに注意してください。

于 2013-10-30T23:06:29.377 に答える