我正在编写一个充当任务/项目管理器的全栈应用程序。它充当一个具有拖放功能的大 table ,允许高层管理人员重新确定任务/项目的优先级。这是高层管理人员所看到的。
-----------------------------------------
|Priority| Task | Resource|
-----------------------------------------
| 1 | Write some code | Arya S. |
-----------------------------------------
| 2 | Write a spec. | Bran S. |
-----------------------------------------
| 3 | Write some code | Bran S. |
-----------------------------------------
...等等 100 多个任务。 为其分配任务的资源也可以登录程序并仅查看他们的任务。例如,如果布兰登录:
-----------------------------------------
|Priority| Task | Resource|
-----------------------------------------
| 2 | Write a spec. | Bran S. |
-----------------------------------------
| 3 | Write some code | Bran S. |
-----------------------------------------
优先级列是我们的 sql-server 数据库中的一列。 有没有办法使用 SQL 重新调整优先级(通过中间层 JAVA 代码,或通过 SQL View ),以便“Bran S.”认为他的优先级从 1 开始? 期望的最终产品:
-----------------------------------------
|Priority| Task | Resource|
-----------------------------------------
| 1 | Write a spec. | Bran S. |
-----------------------------------------
| 2 | Write some code | Bran S. |
-----------------------------------------
我宁愿不必使用 JQuery/DOM 操作,因为它看起来效率低下且困惑,而且有很多移动部件。任何建议将不胜感激!
最佳答案
在 SQL Server 中,Row_Number() 在这里可能很有用。
示例
Select [Priority] = row_number() over (partition by [resouce] order by [Priority])
,[Task]
,[Resouce]
From YourTable
注意:如果您有竞争优先级,则可以将 row_number()
替换为 dense_rank()
要更新您的表格...
;with cte as (
Select *
,[NewPriority] = row_number() over (partition by [resouce] order by [Priority])
From YourTable
)
Update cte set [Priority]=[NewPriority]
关于javascript - 如何将给定表的整数列显示为从 1 开始的自动递增系列给前端用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56978483/