我在属性表中创建了一个新列,它具有默认值(例如0)。
我想要(可能使用字段计算器)结果是第1行的值为1,第2行的值为2像编号索引一样。 。

#1 楼

只需将$rownum(QGIS 2)或@row_number(QGIS 3+)作为表达式即可。就那么简单。 :)

可以在官方文档中阅读所有字段计算器功能的最新列表。

评论


我采用了您的方法,但是没有明显的原因,数字在某一点上发生了变化。它从第1行到第129行完美地工作,然后转移到789。。。

– Tim56
19年1月10日在14:21

确保没有激活显示过滤器,因为没有理由使它跳转。

–lynxlynxlynx
19年1月10日在15:08

#2 楼

@ArMoraer开发了一个有趣的插件,可以控制自动编号的方式,它名为“排序和编号”。您可以使用它通过在编号之前考虑其他3个字段来对数据进行排序,从而用唯一的数字填充一列。在QGIS中按列对表格进行排序?

#3 楼

如果使用QGIS 3,则必须使用@row_number



#4 楼

对我而言,最好和最简单的方法就是$id,这将向每行返回一个id数字,从0对其进行索引。

评论


它返回每个功能ID,但是序列不一定从0开始,并且可能缺少值。在删除现有要素后就是这种情况(即从具有3个要素的图层开始,删除#2,调用$ id将返回0和2。)

– JGH
19年8月22日在1:55

没错,如果缺少值,那么实际索引号就会出现问题。但是,我想在删除行后调用$ id应该证实@row_number。如果我正确理解您的确认。

– Vlad
19年8月23日在18:52

不,它会留下孔

– JGH
19年8月24日,0:58