Вывод надписей

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Вывод надписей

Сообщение KartaBY »

Добрый день.

Понимиаю, что дело в малом, но это малое найти не могу.

Есть точечный слой с АЗС в шейпах. Мне надо вывести надписи в зависимости от наличия (отсутствия) вида топлива.

так на АЗС на которых нет газа и электро зарядок пишу if( "Газ" = '0' and "Электро" = 'NULL', 1, 0)
при этом ничего не выводится на экран.
если пишу фразу if( "Газ" = '0' and "Электро" = 'NULL', 0, 1) то выводит надпись на всех заправках включая и на которых есть газ и электрозарядки.

Где мои ошибки? Куда копать?
Последний раз редактировалось KartaBY 09 фев 2018, 11:06, всего редактировалось 1 раз.
freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Вывод надписей

Сообщение freeExec »

У вас NULL в данных как текст или как отсутствуют данные?
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Вывод надписей

Сообщение KartaBY »

Как отсутствуют данные
nikost
Активный участник
Сообщения: 107
Зарегистрирован: 16 июл 2015, 15:21
Репутация: 35
Откуда: Санкт-Петербург

Re: Вывод надписей

Сообщение nikost »

может как-то так?

Код: Выделить всё

if ( ("Газ" = '0' and "Электро" = 'NULL'), "поле,которым_хотите_подписать","")
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Вывод надписей

Сообщение KartaBY »

В моем случае пишет что не верное выражение

Код: Выделить всё

 if( "Газ" = '0' and  "Электро" =  'NULL',  "concat( 'АЗС №' ,  "N" )", 1)
trir
Гуру
Сообщения: 5362
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Вывод надписей

Сообщение trir »

а кавычки экранировать Пушкин будет?
nikost
Активный участник
Сообщения: 107
Зарегистрирован: 16 июл 2015, 15:21
Репутация: 35
Откуда: Санкт-Петербург

Re: Вывод надписей

Сообщение nikost »

За скобочками следите и кавычки пустые не пропустите для отрицательного результата (вам же не единичку в надписи надо). И вместо concat можно || использовать.

Код: Выделить всё

 if( ("Газ" = '0' and  "Электро" =  'NULL'),  ( "АЗС №"   || " " || "N"), "" )   
(если я вообще правильно понял задачу - вывести надпись только заправок без газа и электро...)
freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Вывод надписей

Сообщение freeExec »

Так напишите

Код: Выделить всё

"Электро" IS  NULL
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Вывод надписей

Сообщение KartaBY »

(если я вообще правильно понял задачу - вывести надпись только заправок без газа и электро...)
Все верно

И код не работает.

Уже и null заменил просто на 0. (Благо заправок 80 штук)
Не помогает.
nikost
Активный участник
Сообщения: 107
Зарегистрирован: 16 июл 2015, 15:21
Репутация: 35
Откуда: Санкт-Петербург

Re: Вывод надписей

Сообщение nikost »

freeExec писал(а): 09 фев 2018, 10:46Так напишите

Код: Выделить всё

"Электро" IS NULL
Точно!
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Вывод надписей

Сообщение KartaBY »

Помог такой вариант.

Код: Выделить всё

 if( ("Газ" + "Электро" =  '0'), 1, 0 )
Теперь выводит как надо. Почему не срабатывали другие варианты для меня загадка.

За помощь всем спасибо.
Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей