[英]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.