Dollarteckenexpansion med variabler

När en skriptvariabel används för att ersätta text inom skriptet eller inom en sats, används syntaxen

$(variablename)      

$(variablename) expanderar till värdet i variabeln. Om variablename inte är angivet blir resultatet en tom sträng.

Om man vill använda en skriptvariabel för numerisk variabelexpansion används följande syntax:

$(#variablename)      

Det resulterar alltid i ett giltigt decimal-kommatal som återspeglar variabelns talvärde, eventuellt med en exponentiell notation (för mycket stora/små tal). Om variablename inte innehåller ett numeriskt värde eller saknas helt expanderas det istället till 0.

Exempel:  

SET DecimalSep=',';

LET X = 7/2;

Dollarteckenexpansionen $(X) expanderar till 3,5 medan $(#X) expanderar till 3.5.

Exempel:  

Set Mypath=C:\MyDocs\Files\;

...

LOAD * from $(MyPath)abc.csv;

Data laddas från C:\MyDocs\Files\abc.csv.

Exempel:  

Set CurrentYear=1992;

...

SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);

Rader med Year=1992 väljs.

Exempel:  

Set vConcatenate = ; For each vFile in FileList('.\*.txt') Data: $(vConcatenate) LOAD * FROM [$(vFile)]; Set vConcatenate = Concatenate ; Next vFile

I det här exemplet laddas alla .txt-filer i katalogen med Concatenate-prefixet. Detta kan behövas om fälten skiljer sig något åt, eftersom auto-konkatenering inte fungerar då. vConcatenate-variabeln är från början satt till en tom sträng, eftersom Concatenate-prefixet inte kan användas på den första laddningen. Om katalogen innehåller tre filer med namnen file1.txt, file2.txt och file3.txt, så kommer LOAD-satsen under de tre iterationerna att expanderas till:

LOAD * FROM[.\file1.txt];

Concatenate LOAD * FROM[.\file2.txt];

Concatenate LOAD * FROM[.\file3.txt];

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?