在postgresql中使用row_number()后如何选择行

在postgresql中使用row_number()后如何选择行,postgresql,Postgresql,我必须从包含一些空值的列中逐个选择空值。我必须一个接一个地选择它们,因为我想用不同的值更新它们 在我的脑海中用尽了可能的选项之后,我选择了使用row_number()来执行此操作,因此下面是我执行的查询 select cid, ROW_NUMBER () OVER (ORDER BY random()) as row from aa_dev.calls where cid is null; 如何选择每一行而不将其存储在任何临时表中并更新每一行? 此列有100个值,其中96个值填充了只有4个空

我必须从包含一些空值的列中逐个选择空值。我必须一个接一个地选择它们,因为我想用不同的值更新它们

在我的脑海中用尽了可能的选项之后,我选择了使用row_number()来执行此操作,因此下面是我执行的查询

select cid, ROW_NUMBER () OVER (ORDER BY random()) as row from aa_dev.calls where cid is null;

如何选择每一行而不将其存储在任何临时表中并更新每一行? 此列有100个值,其中96个值填充了只有4个空值的整数

我需要按如下方式填充行号。例如,此数据中总共有10个值,其中3个为空值

cid 一行 1. 0 54 0 无效的 1. 26 0 86 0 45 0 无效的 2. 56 0 无效的 3. 5. 0
我想到了两种可能的方法:

(cid=NULL)
(cid!=NULL)
分区上使用
行编号()。这只对
NULL
的记录执行,所有其他记录都设置为
0

SELECT 
    *,
    CASE WHEN cid IS NULL THEN
       row_number() OVER (PARTITION BY cid IS NULL)
    ELSE 0 END
FROM
    mytable
第二种方法是简单地在
(cid=NULL)
(cid!=NULL)
上使用
联合
构造:


那么,您只想用一些随机数据填充所有空记录?请向我们展示一些示例数据和预期输出;它将指向此文件的物理位置record@S-伙计,我在问题中加了一张桌子。这是我的期望output@FrankHeikens但这将选择所有空值,我想一个接一个地选择它。@s-Man也是的,我想用一些随机数据填充所有空记录,但我不想一次更新所有空记录。我想迭代地做。这样我就可以控制在每个空记录中插入的内容。解决了我的问题。
SELECT
    cid,
    row_number() OVER ()
FROM mytable
WHERE cid IS NULL

UNION

SELECT
   cid,
   0
FROM mytable
WHERE cid IS NOT NULL