在postgresql中使用row_number()后如何选择行
我必须从包含一些空值的列中逐个选择空值。我必须一个接一个地选择它们,因为我想用不同的值更新它们 在我的脑海中用尽了可能的选项之后,我选择了使用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个空
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