表架构:
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 行也是如此,但这里的一个部门可能有 100 行,70 行打开,30 行关闭,因此打开的行编号为 1 - 70 和 Closed 将是 71 - 100。
关于在不使用游标的情况下做到这一点的任何建议?我的蜘蛛侠感觉告诉我,可能有一种更直接的方法可以做到这一点。
任何帮助表示赞赏。
编辑:好的,所以实际上现在在数据库中,SortOrder 列中只有 NULL。我想更新 SortOrder 列,以便每个 Division(使用 DivisionId)在 SortOrder 中都有一个递增的数字。例如,上面 34 的 DivisioniId 必须有一个 IsOPen = 1 和一个 IsOpen = 0 的行。所以我想分别用 SortOrder 1 和 2 对这两行进行排序。但是一个部门可以有 10 行。那么 SortOrder 字段的划分将是 1、2、3、4、5、6、7、8、9、10。这很难解释,但希望能有所帮助。