5 Replies Latest reply: Oct 31, 2014 5:00 AM by beck bakytbek RSS

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

      Привет всем.

       

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

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

       

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

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

       

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

        • Re: Ноль в таблицах
          Sergey Polekhin

          Есть.

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

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

                • Re: Ноль в таблицах
                  Sergey Polekhin

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

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

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

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

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

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