Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Ноль в таблицах

Привет всем.

Как вы знаете, но QV в скипте загрузки не рассчитывает формулы, если одно из значений отсутствует (см. Значение 2).

НазваниеЗагруженное значение 1Загруженное значение 2Сумма
Значение 1201030
Значение 210--

На данный момент для каждого загружаемого столбца я прописываю формулу:

If( Len(Trim([Требуемый столбец]))>0, [Требуемый столбец], '0' ) as [Требуемый столбец]

Есть ли более простой способ? Для всех данных сразу например?

1 Solution

Accepted Solutions
Sergey_Polekhin
Employee
Employee

Дмитрий, добрый день,

ставить 150 раз указанную формулу действительно муторно.

Поэтому я и предложил второй вариант, позволяющий один раз задать определение вида:Set NullValue = '0', а затем перечислить названия столбцов, в которых при загрузке значения NULL будут автоматически заменены на указанные: NullAsValue Col1, Col2, Col3...

Также при необходимости, в сценарии загрузки можно использовать переключатель NullAsNull Col1, Col2, Col3..., отключающий замену значений NULL в указанных столбцах.

Переключатели NullAsValue и NullAsNull с указанием необходимых столбцов можно использовать неограниченное количество раз.

Очевидно, что вы можете использовать и конструкции вида NullAsValue * и NullAsNull *, не перечисляя 150 полей, а применяя преобразования по отношению ко всем полям.

View solution in original post

5 Replies
Sergey_Polekhin
Employee
Employee

Есть.

  1. Если хочется подставлять нулевые значения в процессе расчета, то указанную выше формулу можно упростить до If( not IsNull[Требуемый столбец]), [Требуемый столбец], 0 ) as [Требуемый столбец]
  2. Если хочется сразу при загрузке таблицы заменить значения NULL конкретными, то это можно сделать определениями NullAsValue и NullValue. Обратите только внимание на то, что указанные определения формируют строковое значение в указанных столбцах данных вместо значения NULL. Поэтому для использования в арифметических операциях может потребоваться преобразование значений с использованием функций Num() и/или Evaluate()
Not applicable
Author

Сергей, а если этих столбцов штук 150, то на каждый надо ставить данную формулу?

Sergey_Polekhin
Employee
Employee

Дмитрий, добрый день,

ставить 150 раз указанную формулу действительно муторно.

Поэтому я и предложил второй вариант, позволяющий один раз задать определение вида:Set NullValue = '0', а затем перечислить названия столбцов, в которых при загрузке значения NULL будут автоматически заменены на указанные: NullAsValue Col1, Col2, Col3...

Также при необходимости, в сценарии загрузки можно использовать переключатель NullAsNull Col1, Col2, Col3..., отключающий замену значений NULL в указанных столбцах.

Переключатели NullAsValue и NullAsNull с указанием необходимых столбцов можно использовать неограниченное количество раз.

Очевидно, что вы можете использовать и конструкции вида NullAsValue * и NullAsNull *, не перечисляя 150 полей, а применяя преобразования по отношению ко всем полям.

Not applicable
Author

Ага. Спасибо большое!

beck_bakytbek
Master
Master

Dmitrij Zdrastvuite

moshet byt Vam budet interesen etot slu4ai, gde ja NULL-dannye pokazyvaju na grafike

BeckZeroValues.png