簡體   English   中英

將 2 列合二為一

[英]Mix 2 columns in one

我有 2 列填充了不同的數字,我想在第三列中重新定位重復的數字。 這些列中也可以有 NULL,在這種情況下我想得到其他結果。

這是一個例子。

Column A Column B
1 2
2 2
3 NULL
NULL 4
NULL NULL

我想按照以下規則將兩列合二為一(C 列)。

Value A != Value B --> A string of characters looking like this '???'
Value A == Value B --> Get Value A or B, doesn't matter

有了這個結果,除了前面顯示的第一種情況外,一切正常,其中 A 列有 X 值,B 列有 Y 值。 我無法得到預期的“???” 我想要的結果。

還沒有嘗試使用 arrays。

我的代碼

因此,您正在使用字段計算器根據列 A 和列 B 的值計算列 C 的值。

請注意,QGIS 要素屬性的類型可以是 integer、浮點數或文本。 假設您的 A 列和 B 列是整數,那么 C 列也將是 integer 列,因此值為'???' 不可接受,因為這不能轉換為 integer 值。

一種常見的方法是保留 integer 范圍中的特定值作為附加的 INVALID DATA 值。 例如,如果您所有的有效值都是正數,您可以使用-1作為您的 INVALID DATA 值。

那么您的代碼可能如下所示:

if( ("PUNTS INICIALS ed50_EQM1 C d" is NULL) or ("PUNTS FINALS ed50_EQM1 C d" is NULL),
    coalesce("PUNTS INICIALS ed50_EQM1 C d","PUNTS FINALS ed50_EQM1 C d"),
    if("PUNTS INICIALS ed50_EQM1 C d"="PUNTS FINALS ed50_EQM1 C d","PUNTS INICIALS ed50_EQM1 C d",-1))

請注意, coalesce()可用於處理其中一個值為 NULL 的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM