Как объединить метки в QGIS?

14

Я использую QGIS 1.8 на компьютере с Windows XP и пытаюсь объединить несколько полей для обозначения названий моих локальных дорог в таблице атрибутов, но не могу найти правильный синтаксис. Первое поле состоит из улицы, ссылки второго типа, например: Авеню и третьей ориентации, например, Восток или Запад. Не могли бы вы рассказать мне, как написать правильный синтаксис, используя диалоговое окно меток на основе формулы. Прикреплен скриншот с таблицей атрибутов.

введите описание изображения здесь

Габриэль Жиру
источник

Ответы:

19

Оператор конкатенации ||(странно, да?), Поэтому вы должны использовать что-то вроде:

street || ', ' || link || ', ' || orientation

Вкрапляйте их любыми разделителями и статическими строками.

Как отметил @NathanW, произойдет сбой, если какое-либо из полей имеет значение NULL, но в этом случае вы можете использовать запасное значение:

street || ', ' || CASE WHEN ("link" IS NULL) THEN '(nodata)' ELSE "link" END || ', ' || orientation

QGIS поддерживает вспомогательную функцию coalesceначиная с версии 2.0. Это сделано для того, чтобы избежать проблем с NULL, и пример будет выглядеть так:

 street || ', ' || coalesce(link, '(nodata)') || ', ' || orientation
lynxlynxlynx
источник
2
Также есть concatфункция в версиях для разработчиков. Использование || не обрабатывает NULL, если linkNULL, весь ярлык равен нулю concat, такой проблемы нет. || взято из Postgres postgresql.org/docs/9.1/static/functions-string.html
Натан В.
Похоже, он не поддерживает регистр непосредственно. Является ли единственный вариант без непосредственного использования SQL для создания ненулевой копии столбца ссылок?
lynxlynxlynx
Что вы имеете в виду, не поддерживает заявления случая?
Натан W
3
Вы скучаете по КОНЦУ. Правильная строкаCASE WHEN ("link" IS NULL) THEN '(nodata)' ELSE "link" END
Натан W
1
ааа coalesceэто тот, кого я имел в виду.
Натан Вт
2

На QGIS veriosn 2.0.1 простое выражение работало так:

"field1" || '(' || "field2" || ')'

желаемый вывод: field1 (field2)

Pavlarian
источник