Расширение со знаком доллара с использованием переменной
При использовании переменной для текстового замещения в скрипте или в выражении используется следующий синтаксис:
$(variablename)
$(variablename) расширяется до значения в переменной. Если элемент variablename не существует, расширение будет пустой строкой.
Для расширений числовых переменных используется следующий синтаксис:
$(#variablename)
Он всегда возвращает допустимое представление десятичной точки числового значения переменной, возможно, в экспоненциальной нотации (для очень больших/малых чисел). Если элемент variablename не существует или не содержит числовое значение, вместо этого будет выполнено расширение до 0.
Пример:
SET DecimalSep=',';
LET X = 7/2;
Расширение со знаком доллара $(X) будет расширяться до 3,5, в то время как $(#X) будет расширяться до 3.5.
Пример:
Set Mypath=C:\MyDocs\Files\;
...
LOAD * from $(MyPath)abc.csv;
Данные будут загружены из файла по пути C:\MyDocs\Files\abc.csv.
Пример:
Set CurrentYear=1992;
...
SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);
Строки с элементом Year=1992 будут выбраны.
Пример:
В этом примере все файлы .txt в каталоге загружаются с помощью префикса Concatenate. Это может потребоваться, если поля отличаются незначительно, так как в этом случае автоматическое объединение не работает. Переменная vConcatenate изначально задается в пустую строку, поскольку префикс Concatenate не используется при первой загрузке. Если каталог содержит три файла под именами file1.txt, file2.txt и file3.txt, оператор LOAD за время трех итераций расширится до:
LOAD * FROM[.\file1.txt];
Concatenate LOAD * FROM[.\file2.txt];
Concatenate LOAD * FROM[.\file3.txt];
Расширение переменных в альтернативных состояниях
Переменная имеет только одно значение, и оно используется во всех альтернативных состояниях. При расширении переменной ее значение также остается неизменным, независимо от места ее создания и состояния объекта.
Если переменная является вычисляемой, то есть ее определение начинается со знака равенства, вычисление производится в состоянии по умолчанию, если в определении переменной не указано альтернативное состояние.
Пример:
Если имеется состояние MyState и переменная vMyVar:
Содержимое определения переменной с явной ссылкой на имя альтернативного состояния определяет, в каком состоянии будет оцениваться содержимое переменной.