テーブル スキーマ:
StatusId Status DisplayColor IsOpen DivisionId SortOrder
4 Open 3e696c 1 34 1
5 Closed 3e696c 0 34 2
1 Open 3e696c 1 35 1
2 Closed 3e696c 0 35 2
列に番号を付ける必要がある方法で列を並べ替える必要がある SQL クエリ:
select StatusId, Status, DisplayColor, IsOpen, DivisionId, SortOrder
from TV_Statuses s
order by DivisionId, IsOpen desc
DivisionId と IsOpen によって、SortOrder をインクリメンタルに割り当てて割り当てることができるスクリプトを作成しようとしています。したがって、ここでは、4 の STatusId の SortOrder は 1 になります。5 の StatusId は、SortOrder 2 になります。下の 2 行についても同じですが、ここでは、1 つの部門に 100 行、70 行が開いていて、30 行が閉じている可能性があるため、開いている行には 1 の番号が付けられます。 - 70 で、Closed は 71 - 100 になります。
カーソルに頼らずにこれを行う方法に関するアドバイスはありますか? 私の賢明な感覚は、おそらくもっと簡単な方法があると言っています。
任意の支援をいただければ幸いです。
編集: OK、実際にデータベースでは、SortOrder 列には NULL しかありません。SortOrder 列を更新して、各部門 (DivisionId を使用) の番号が SortOrder で増加するようにします。たとえば、上記の 34 の DivisioniId は、1 つの IsOPen = 1 と 1 つの IsOpen = 0 の行でなければなりません。したがって、これらの 2 つの行をそれぞれ SortOrder 1 と 2 で並べ替えたいと思います。ただし、部門には 10 行を含めることができます。次に、その部門の SortOrder フィールドは 1、2、3、4、5、6、7、8、9、10 になります。説明するのは難しいですが、うまくいけば少しは役に立ちます。