Bas*_*ani 5 sql sqlite default subquery max
我想为表中的子组递增序列号,但如果子组不存在则序列应以1开头:
例如,在下面,如果表中没有记录,我们希望序列设置为1 class=5; 如果存在这样的记录,那么序列应该取值max sequence(在子组中class=5)+ 1:
update order set class=5, sequence=(select max(sequence) from order
where class=5)+1 where order_id=104;
Run Code Online (Sandbox Code Playgroud)
问题是以上对初始案例不起作用.
在这些情况下,功能COALESCE()非常方便:
UPDATE order
SET class = 5,
sequence = coalesce(
(SELECT max(sequence)
FROM order
WHERE class=5),
0
) + 1
WHERE order_id = 104
Run Code Online (Sandbox Code Playgroud)
COALESCE大多数其他SQL引擎支持它的另一个好处- MySQL,Postgres等......
| 归档时间: |
|
| 查看次数: |
4122 次 |
| 最近记录: |