RUS  ENG 

IsNull или NVL

Страницы: 1
RSS
IsNull или NVL, Существует ли что-то подобное IsNull из MSSQl или NVL из Oracle
 
Существует ли в ZULUGIS что-то подобное IsNull из MSSQl или NVL из Oracle?
Имеется ввиду в синтаксисе Layer.ExecSQL и подобном, не ZbDatabase с его OpenSql, в котором все зависит от используемой базы данных.
Спасибо.
 
Vic, да, есть:
<выражение> IS NULL
или
<выражение> IS NOT NULL
 
Это в WHERE,я спрашивал про функции в выборке полей в самом SELECT-е,
хотя уже посмотрел, ничего подобного IsNull не вижу, там вообще небогато с функциями...
Черт.., еще и UNION нет, как жить-то?
Изменено: Vic - 30.11.2018 15:37:03
 
Понятно. Функции IsNull пока нет, добавим. UNION стоит в плане доработок. А каких ещё нужных функции не нашлось ? Добавим.
 
Обнаружилась такая штук - IIF.
select IIF(value IS NULL,0,value) .........
В определенном смысле помогает, но агрегат сюда уже не вставишь
IIF(SUM([L]) IS NULL,0,1) - ошибка Type mismatch in expression
AND и OR тоже не понимает:
select IIF(L > 30 AND L < 50 ,0,1) where typename = "Участки" - ошибка Bad operator.
в последнем случае можно нагородить вложенные IIF.

По поводу "А каких ещё нужных функции не нашлось" так сразу и не скажешь.
CASE .. WHEN еще не помешало бы.
Сдается мне весь Transact-SQL все равно не влезет :)
 
Vic, добрый день!
Исправили ошибки в конструкции IIF, в ближайшем релизе будут работать агрегаты и комбинация условий.
Там же будет доступен CASE WHEN (оба варианта как в T-SQL) (не доделано было) и ISNULL().
Если что-то еще не хватает - сообщайте.
 
В IIF странная особенность, если нужно по условию вставить пустую строку, в итоге в выборке Null, что нежелательно, поэтому в True вставляю пробелы (один обычно),
теперь вторая особенность - но теперь во всех строках (и до и после этой строки) если есть непустое значение, оно обрезается до 1 символа (ну или сколько пробелов вставлю)
IIF(modename="Да"," ",value) -> value режется
если так
IIF(modename<>"Да",value," ") -> value не режется
причем пустышка не обязательно первая

Я понимаю что в одних базах данных строка с нулевой длиной в итоге может быть Null, а в других нет, правда еще зависит от того какой язык программирования выбран для интерпретации данных.

Еще в августе у Вас спрашивали про UNION, присоединяюсь.
Изменено: Vic - 02.12.2018 15:45:53
 
Vic, в сегодняшнем релизе 8.0.0.6912 доступны IIF (с исправлениями), CASE WHEN и ISNULL().
Пустая строка и NULL: исторически так сложилось, что пустая строка в датасете от ZuluServer трактуется как NULL.
UNION: да, как я раньше писал, в плане стоит, по срокам пока не могу уточнить.
 
Спасибо!
Ho IIF сломался, у меня в False было математическое выражение,
если L сложить , умножить и прочее, то получаем
IIF(modename="какой-то режим",0,L*5) Type mismatch in IIF parameters.
Причем в True все нормально.
Изменено: Vic - 03.12.2018 18:21:24
 
Vic, подправили, обновитесь, пожалуйста!
Страницы: 1