Страница 1 из 1

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

Добавлено: 09 фев 2018, 09:05
KartaBY
Добрый день.

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

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

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

Где мои ошибки? Куда копать?

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

Добавлено: 09 фев 2018, 09:52
freeExec
У вас NULL в данных как текст или как отсутствуют данные?

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

Добавлено: 09 фев 2018, 10:11
KartaBY
Как отсутствуют данные

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

Добавлено: 09 фев 2018, 10:13
nikost
может как-то так?

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

if ( ("Газ" = '0' and "Электро" = 'NULL'), "поле,которым_хотите_подписать","")

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

Добавлено: 09 фев 2018, 10:24
KartaBY
В моем случае пишет что не верное выражение

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

 if( "Газ" = '0' and  "Электро" =  'NULL',  "concat( 'АЗС №' ,  "N" )", 1)

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

Добавлено: 09 фев 2018, 10:32
trir
а кавычки экранировать Пушкин будет?

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

Добавлено: 09 фев 2018, 10:42
nikost
За скобочками следите и кавычки пустые не пропустите для отрицательного результата (вам же не единичку в надписи надо). И вместо concat можно || использовать.

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

 if( ("Газ" = '0' and  "Электро" =  'NULL'),  ( "АЗС №"   || " " || "N"), "" )   
(если я вообще правильно понял задачу - вывести надпись только заправок без газа и электро...)

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

Добавлено: 09 фев 2018, 10:46
freeExec
Так напишите

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

"Электро" IS  NULL

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

Добавлено: 09 фев 2018, 10:55
KartaBY
(если я вообще правильно понял задачу - вывести надпись только заправок без газа и электро...)
Все верно

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

Уже и null заменил просто на 0. (Благо заправок 80 штук)
Не помогает.

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

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

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

"Электро" IS NULL
Точно!

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

Добавлено: 09 фев 2018, 11:04
KartaBY
Помог такой вариант.

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

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

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