在Azure SQL Server中,是否可以用索引值替换NULLS?
换句话说,我有一个通常包含唯一值的列。但是,有时它没有数字。我有一个存储过程,当用户填写表单时触发,他们为该表单分配一个标识符(整数),然后存储过程执行----------------------------
Id | Name | Description |
----------------------------
1 One The number one
2 Two The number two
3 Three The number three
更新/将信息插入维度。如果该数字已经在维度上,则更新该行,如果不是,则插入。但是,如果用户不包含标识符,我想为该行分配一个。
这样的事情怎么办?
答案 0 :(得分:0)
如果我理解正确,您可以使用窗口功能。以下是update
的代码:
with toupdate as (
select t.*,
max(col) over () as maxcol,
row_number() over (partition by col order by col) as inc
from t
)
update toupdate
set col = maxcol + inc
where col is null;
这会对所有行进行更新。类似的想法可以用于merge
。