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

Калькулятор полей в QGis (условный оператор)

Добавлено: 15 апр 2021, 12:41
Пользователь2612
Здравствуйте. У меня есть текстовое поле "A". В поле "B", который имеет тип integer, мне надо присвоить значение в зависимости от значения в поле "A".
В калькуляторе полей в QGis пробовала писать по-разному такие выражения:
CASE WHEN "A" = 'город' THEN 1 END
CASE WHEN "A" LIKE 'город' THEN 1 END
CASE WHEN "A" is 'город' THEN 1 END
В поле "A" есть значение "город", но почему-то программа не присваивает нужное значение 1 полю "B", пишет "Null".

Хотя если применять ту же самую функцию для других полей, например CASE WHEN "C" = 'x' THEN 1 END, то все работает. В чем может быть причина? Заранее спасибо.

Re: Калькулятор полей в QGis (условный оператор)

Добавлено: 15 апр 2021, 14:10
Vadim
CASE WHEN "A" = 'город' THEN 1 ELSE 0 END

Re: Калькулятор полей в QGis (условный оператор)

Добавлено: 15 апр 2021, 14:28
Пользователь2612
Vadim, делаю так, выводит 0. А должно быть 1, т.к. значение "город" есть.

Re: Калькулятор полей в QGis (условный оператор)

Добавлено: 16 апр 2021, 09:41
Vadim
Пользователь2612, убедитесь, что нет латинских символов в значении 'город' ни в запросе, ни в атрибутах.

Re: Калькулятор полей в QGis (условный оператор)

Добавлено: 16 апр 2021, 12:06
gisterbiter
Ну если с "С" все работает, то причина скорее всего в том, что "А" != (не равно) 'город'. Т.е., как заметил Вадим, стоит проверить на орфографию 'город', т.к. для вычислительной машины русская "о" и английская "o" это два разных символа. Если не сработает, отпишитесь, будем думать!