如何根据优先级更新记录的下拉列表?
How to update the record's dropdownlist based on precedence?
我有一个下拉列表,其中包含:
Rank1
Rank2
Rank3
Rank4
和更新按钮。
我有如下记录
id name rank
1 chetan 1
2 ajay 3
3 kelly 2
我想以这样的方式编写更新 SQL 查询:
- 当我想将 chetan(rank1) 的排名更新为 rank2 时,不应更新它。
- rank3可以更新到rank1和rank2
- rank4 可以更新到 rank1 rank2 和 rank3
- rank2 不应更新为 rank3 和 rank4。
这是首选。高等级不应更新为低等级,但低等级可以更新为高等级。
我尝试使用 Case when
进行查询,但它不起作用:
update cmp set cmp.rank = case when 'Rank4' Then update cmp set cmp.rank='Rank3' or cmp.rank='Rank2' or cmp.rank='Rank1' else cmp.rank end,
cmp.rank=case when 'Rank3' Then update cmp set cmp.rank='Rank2' or cmp.rank='Rank1' else cmp.rank end,
...
还有其他解决方案吗?
这是一种方法
update t
set t.rank='<passed_in_value_from_dropdown>'
where '<passed_in_value_from_dropdown>' < t.rank
and t.emp = '<passed_in_emp_number>'
我有一个下拉列表,其中包含:
Rank1
Rank2
Rank3
Rank4
和更新按钮。
我有如下记录
id name rank
1 chetan 1
2 ajay 3
3 kelly 2
我想以这样的方式编写更新 SQL 查询:
- 当我想将 chetan(rank1) 的排名更新为 rank2 时,不应更新它。
- rank3可以更新到rank1和rank2
- rank4 可以更新到 rank1 rank2 和 rank3
- rank2 不应更新为 rank3 和 rank4。
这是首选。高等级不应更新为低等级,但低等级可以更新为高等级。
我尝试使用 Case when
进行查询,但它不起作用:
update cmp set cmp.rank = case when 'Rank4' Then update cmp set cmp.rank='Rank3' or cmp.rank='Rank2' or cmp.rank='Rank1' else cmp.rank end,
cmp.rank=case when 'Rank3' Then update cmp set cmp.rank='Rank2' or cmp.rank='Rank1' else cmp.rank end,
...
还有其他解决方案吗?
这是一种方法
update t
set t.rank='<passed_in_value_from_dropdown>'
where '<passed_in_value_from_dropdown>' < t.rank
and t.emp = '<passed_in_emp_number>'