Funcţii specifice furnizorului Constante O constantă este o valoare fixă pe care o puteţi utiliza într-o expresie. Operatori Operatorii precizează ce se întâmplă cu valorile pe fiecare parte a operatorului. Operatorii sunt similari cu funcţiile, adică manipulează articole de date şi returnează un rezultat. dată Inserează data curentă a sistemului. dată-oră Inserează data şi ora curente ale sistemului. oră cu fus orar Inserează o oră cu fus orar cu zero. amprentă de timp cu fus orar Inserează un exemplu de amprentă de timp cu fus orar. Inserează valoarea "false". interval Inserează un interval zero: 000 00:00:00.000. interval de tip an Inserează un interval de tip an cu zero: 0 an. interval de tip lună Inserează un interval de tip lună cu zero: 0 lună. interval de tip an la lună Inserează un interval ani-luni cu zero: 0000-00 ani-luni. interval de tip zi Inserează un interval de tip zi cu zero: 0 zi. interval de tip oră Inserează un interval de tip oră cu zero: 0 oră. interval de tip minut Inserează un interval de tip minut cu zero: 0 minut. interval de tip secundă Inserează un interval de tip secundă cu zero: 0 secundă. interval de tip zi la oră Inserează un interval de tip zi la oră cu zero: 0 00 zi la oră. interval de tip zi la minut Inserează un interval zi la minut cu zero: 0 00:00 zi la minut. interval de tip zi la secundă Inserează un interval zi la secundă cu zero: 0 00:00:00.000000000 zi la secundă. interval de tip oră la minut Inserează un interval oră la minut cu zero: 00:00 oră la minut. interval de tip oră la secundă Inserează un interval oră la secundă cu zero: 00:00:00.000000000 oră la secundă. interval de tip minut la secundă Inserează un interval minut la secundă cu zero: 00:00:00.000000000 minut la secundă. Inserează o valoare "NULL" dacă condiţiile expresiei nu sunt îndeplinite. număr Inserează numărul 0, care poate fi înlocuit cu o nouă valoare numerică. şir Inserează un şir vid ca două semne ghilimele simple între care puteţi introduce un şir. oră Inserează ora curentă a sistemului. Inserează valoarea "true".
Identifică începutul unei expresii. ( expresie ) Identifică sfârşitul unei expresii. ( expresie ) Înmulţeşte două valori numerice. valoare1 * valoare2 , Separă componentele expresiei. expresie ( parameter1; parameter2 ) Împarte două valori numerice. valoare1 / valoare2 Concatenează sau uneşte şiruri. şir1 || şir2 Adună două valori numerice. valoare1 + valoare2 Scade două valori numerice sau face o valoare numerică negativă. valoare1 - valoare2 sau - valoare Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care sunt mai mici decât "valoare2". valoare1 < valoare2 Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care sunt mai mici sau egale cu "valoare2". valoare1 <= valoare2 Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care nu sunt egale cu "valoare2". valoare1 <> valoare2 Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care sunt egale cu "valoare2". valoare1 = valoare2 Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care sunt mai mari decât "valoare2". valoare1 > valoare2 Separă componentele într-o expresie de membru literal. [spaţiu de nume].[dimensiune].[ierarhie].[nivel]->[L1] Compară valorile reprezentate de "valoare1" cu "valoare2" şi recuperează valorile care sunt mai mari sau egale cu "valoare2". valoare1 >= valoare2 Returnează "TRUE" dacă condiţiile din ambele părţi ale expresiei sunt adevărate. argument1 and argument2 Funcţionează cu expresii de sumar pentru a defini domeniul de ajustat pe baza coloanelor de grupare din interogare. Domeniul depinde de conţinut. aggregate_function ( expresie AUTO ) Determină dacă o valoare se încadrează într-un interval dat. expresie between valoare1 and valoare2 Exemplu: [Revenue] between 200 and 300 Rezultat: Returnează numărul de rezultate cu veniturile între 200 şi 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Funcţionează cu when, then, else şi end. Case identifică începutul unei situaţii specifice, în care sunt definite when, then şi else. case expresie { when expresie then expresie } [ else expresie ] end Determină dacă "şir1" conţine "şir2". Această sintaxă suportă ambele metacaractere: Semnul procent (%) reprezintă zero, unul sau mai multe caractere, şi liniuţa de subliniere (_) reprezintă orice caracter. Cuvântul cheie opţional LITERAL indică cum sunt interpretate '%' şi '_'. Când este prezent cuvântul cheie LITERAL, '%' şi '_' nu sunt tratate ca metacaractere (vedeţi Exemplul 3 şi 5). Altfel, în absenţa cuvântului cheie LITERAL, '%' şi '_' se comportă ca metacaractere (vedeţi Exemplul 1, 2 şi 4). şir1 contains [LITERAL] şir2 Exemplul 1: [PRODUCT_LINE] contains 'door' Rezultat 1: Outdoor Equipment Exemplul 2: [PRODUCT_LINE] contains 'Golf%' Rezultat 2: Golf Equipment Exemplul 3: [PRODUCT_LINE] contains literal 'Golf%' Rezultat 3: Golf% Exemplul 4: [PRODUCT_LINE] contains 'Current_Year%' Rezultat 4: Current Year Price, Current Year Price%, Current_Year Price%. Exemplul 5: [PRODUCT_LINE] contains literal 'Current_Year%' Rezultat 5: Current_Year%. Cuvânt cheie care poate fi utilizat ca argument principal al funcţiei de sumar membri. Această funcţie apare în exemplul de raport Venit total pe ţară din pachetul Antrepozit de date GO (interogare). aggregate_function ( currentMeasure within set expresie ) current_date Returnează data curentă a bazei de date. current_date Funcţionează cu construcţia lookup. lookup (....) in (....) default (....) Un cuvânt cheie utilizat în expresia agregat pentru a include numai ocurenţele distincte ale valorilor. Vezi şi unicitatea funcţiei. distinct dataItem Exemplu: count ( distinct [OrderDetailQuantity] ) Rezultat: 1704 Funcţionează cu construcţiile if sau case. Dacă condiţia if sau expresia case nu este adevărată, atunci se utilizează expresia else. Această funcţie apare în exemplul de raport Top 10 Retailers for 2005 din pachetul GO Data Warehouse (analysis). if ( condition ) then .... else ( expresie ) ; or case .... else ( expresie ) end Indică sfârşitul unei construcţii case sau when. case .... end Determină dacă "şir1" se termină cu "şir2". Această sintaxă suportă ambele metacaractere: Semnul procent (%) reprezintă zero, unul sau mai multe caractere, şi liniuţa de subliniere (_) reprezintă orice caracter. Cuvântul cheie opţional LITERAL indică cum sunt interpretate '%' şi '_'. Când este prezent cuvântul cheie LITERAL, '%' şi '_' nu sunt tratate ca metacaractere (vedeţi Exemplul 3 şi 5). Altfel, în absenţa cuvântului cheie LITERAL, '%' şi '_' se comportă ca metacaractere (vedeţi Exemplul 1, 2 şi 4). şir1 ends with [LITERAL] şir2 Exemplul 1: [PRODUCT_LINE] ends with 'Equipment' Rezultat 1: Camping Equipment, Golf Equipment Exemplul 2: [PRODUCT_LINE] ends with '%Equipment' Rezultat 2: Golf Equipment, Camping Equipment Exemplul 3: [PRODUCT_LINE] ends with literal 'Equipment%' Rezultat 3: Equipment% Exemplul 4: [PRODUCT_LINE] ends with '%Price' Rezultat 4: Product Price, Current_Year Price Exemplul 5: [PRODUCT_LINE] ends with literal '%Price' Rezultat 5: %Price Determină dacă "şir1" se potriveşte cu modelul "şir2", cu caracterul "char" folosit opţional pentru secevenţa de escape la caracterele din şirul model. şir1 LIKE şir2 [ ESCAPE char ] Exemplu: [PRODUCT_LINE] like 'G%' Rezultat: Toate liniile de produs care încep cu 'G'. Exemplu: [PRODUCT_LINE] like '%Ga%' escape 'a' Rezultat: Toate liniile de produs care se sfârşesc cu 'G'. Funcţionează cu expresiile sumar pentru a defini domeniul agregării din interogare. aggregate_function ( expresie for expresie{ ; expresie } ) Funcţionează cu expresii de sumar pentru a defini domeniul de ajustat pe baza unui subset al coloanelor de grupare din interogare. Echivalent pentru clauza for. aggregate_function ( expresie for ANY expresie { ; expresie } ) Funcţionează cu expresii de sumar pentru a defini domeniul pentru ca toate coloanele de grupare să fie în interogare. Consultaţi şi clauza for. aggregate_function ( expresie for ALL expresie { ; expresie } ) Funcţionează cu expresii de sumar pentru a seta domeniul pentru întreaga interogare. Consultaţi şi clauza for. Această funcţie apare în exemplul de raport Customer Returns and Satisfaction din pachetul GO Data Warehouse (analysis). aggregate_function ( expresie for report ) Funcţionează cu construcţiile then şi else. If defineşte o condiţie; dacă condiţia if este adevărată, atunci se utilizează expresia then. Dacă condiţia if este falsă, atunci se utilizează expresia else. Această funcţie apare în exemplul de raport Top 10 Retailers for 2005 din pachetul GO Data Warehouse (analysis). if ( condition ) then ( expresie ) else ( expresie ) Determină dacă "expresie1" există într-o listă dată de expresii. expresie1 in ( listă_expresii ) Determină dacă "expresie1" există într-o listă dată de valori constante sau intervale. expresie1 in_range { constant : constant [ ; constant : constant ] } Exemplu: [cod] in_range { 5 } Rezultat: Aceasta este echivalentă cu [cod] = 5. Exemplu: [cod] in_range { 5: } Rezultat: Aceasta este echivalentă cu [cod] >= 5. Exemplu: [cod] in_range { :5 } Rezultat: Aceasta este echivalentă cu [cod] <= 5. Exemplu: [cod] in_range { 5:10 } Rezultat: Aceasta este echivalentă cu ( [cod] >= 5 şi [code] <= 10 ). Exemplu: [cod] in_range { :5;10;20: } Rezultat: Aceasta este echivalentă cu ( [cod] <= 5 sau [code] = 10 sau [cod] >= 20 ). Determină dacă "valoarea" este nedefinită în date. valoare is missing Determină dacă "valoarea" este nedefinită în date. valoare is null Determină dacă "valoarea" este definită în date. valoare is not missing Determină dacă "valoarea" este definită în date. valoare is not null Determină dacă "şir1" se potriveşte cu modelul "şir2", cu caracterul "char" folosit opţional pentru secevenţa de escape la caracterele din şirul model. Această sintaxă suportă ambele metacaractere: Semnul procent (%) reprezintă zero, unul sau mai multe caractere, şi liniuţa de subliniere (_) reprezintă orice caracter. şir1 LIKE şir2 [ ESCAPE char ] Exemplul 1: [PRODUCT_LINE] like 'G%' Rezultat 1: Toate liniile de produse care încep cu 'G'. Exemplul 2: [PRODUCT_LINE] like '%Ga%' escape 'a' Rezultat 2: Toate liniile de produs care se sfârşesc cu 'G%'. Exemplul 3: [PRODUCT_LINE] like 'C_R_' Rezultat 3: Toate liniile de produse cu numele CARS sau CARD. Exemplu: lookup ( [Country]) in ( 'Canada'--> ( [List Price] * 0.60); 'Australia'--> ( [List Price] * 0.80 ) ) default ( [List Price] ) Caută şi înlocuieşte datele cu o valoare pe care o specificaţi. Utilizaţi, de preferinţă, construcţia case. lookup ( nume ) in ( valoare1 --> valoare2 ) default ( expresie ) Returnează TRUE dacă "argumentul" este fals sau returnează FALSE dacă "argumentul" este adevărat. NOT argument Returnează TRUE dacă fie "argument1", fie "argument2" sunt adevărate. argument1 or argument2 Efectuează un calcul sumar înainte de aplicarea filtrului sumar. funcţie_summary ([expresie] prefilter) Exemplu: total ( [Quantity] for report prefilter ) summaryFilter: total( [Quantity] for [ProductNo] ) > 50000 Rezultat: Însumează cantităţile dintr-un raport înainte de a fi aplicat filtru de sumar. PNo Total Total Total forPNo forRep forRep_Prefilter --------- -------- ---------- ------------------- 88 54928 298140 2215354 89 51126 298140 2215354 90 69996 298140 2215354 94 69004 298140 2215354 95 53086 298140 2215354 Numără ieşirea numărului de rânduri după interogare. Utilizaţi cu Count (). count ( ROWS ) Numără ieşirea numărului de rânduri după interogare. Utilizaţi cu Count (). count ( ROWS  [ expresie ]) Determină dacă "şir1" începe cu "şir2". Această sintaxă suportă ambele metacaractere: Semnul procent (%) reprezintă zero, unul sau mai multe caractere, şi liniuţa de subliniere (_) reprezintă orice caracter. Cuvântul cheie opţional LITERAL indică cum sunt interpretate '%' şi '_'. Când este prezent cuvântul cheie LITERAL, '%' şi '_' nu sunt tratate ca metacaractere (vedeţi Exemplul 3 şi 5). Altfel, în absenţa cuvântului cheie LITERAL, '%' şi '_' se comportă ca metacaractere (vedeţi Exemplul 1, 2 şi 4). şir1 starts with [LITERAL] şir2 Exemplul 1: [PRODUCT_LINE] starts with 'Golf' Rezultat 1: Golf Equipment Exemplul 2: [PRODUCT_LINE] starts with 'Outdoor%' Rezultat 2: Outdoor Equipment Exemplul 3: [PRODUCT_LINE] starts with literal 'Golf%' Rezultat 3: Golf% Exemplul 4: [PRODUCT_LINE] starts with 'Current_Year%' Rezultat 4: Current Year Price, Current Year Price%, Current_Year Price% Exemplul 5: [PRODUCT_LINE] starts with literal 'Current_Year%' Rezultat 5: Current_Year% Funcţionează cu construcţiile if sau case. Atunci când condiţia if sau expresia when sunt adevărate, se utilizează expresia then. Această funcţie apare în exemplul de raport Top 10 Retailers for 2005 din pachetul GO Data Warehouse (analysis). expresiile if ( condiţie ) then ..., sau case expresie when expresie then .... end Funcţionează cu construcţia case. Puteţi defini condiţii care să apară când expresia WHEN este adevărată. case [expresie] when ... end
Sumare Această listă conţine funcţiile predefinite care returnează o singură valoare sumar pentru un grup de valori conexe sau o valoare sumar diferită pentru fiecare instanţă a unui grup de valori conexe. Returnează o valoare calculată utilizând funcţia de agregare adecvată, pe baza tipului de agregare a expresiei. Această funcţie apare în exemplul de raport Budget vs. Actual din pachetul GO Data Warehouse (analysis). aggregate ( expresie [ auto ] ) aggregate ( expresie for [ all|any ] expresie { ; expresie } ) aggregate ( expresie for report ) Indică valoarea medie a datelor selectate. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. average ( [ distinct ] expresie[ auto ] ) average ( [ distinct ] expresie for [ all|any ] expresie { ; expresie  } ) average ( [ distinct ] expresie for report ) Exemplu: average ( Sales ) Rezultat: Returnează media tuturor valorilor Vânzări. Returnează numărul de articole de date selectate, excluzând valorile NULL. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. Totul este suportat doar în modul DQM şi evită posibilitatea de a număra de două ori un articol de date al unui tabel de dimensiuni. count ( [ all | distinct ] expresie [ auto ] ) count ( [ all | distinct ] expresie [ all|any ] expresie { ; expresie } ) count ( [ all | distinct ] expresie for report ) Exemplu: count ( Vânzări ) Rezultat: Returnează numărul total de intrări de la Sales. Returnează valoarea maximă a articolelor de date selectate. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. maximum ( [ distinct ] expresie [ auto ] ) maximum ( [ distinct ] expresie for [ all|any ] expresie { ; expresie  } ) maximum ( [ distinct ] expresie for report ) Exemplu: maximum ( Vânzări ) Rezultat: Returnează valoarea maximă a tuturor valorilor Sales. Returnează valoarea mediană a articolelor de date selectate. median ( expresie [ auto ] ) median ( expresie for [ all|any ] expresie { ; expresie  } ) median ( expresie for report ) Returnează valoarea minimă a articolelor de date selectate. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. minimum ( [ distinct ] expresie pression [ auto ] ) minimum ( [ distinct ] expresie for [ all|any ] expresie { ; expresie  } ) minimum ( [ distinct ] expresie for report ) Exemplu: minimum ( Sales ) Rezultat: Returnează valoarea minimă a tuturor valorilor Sales. Returnează o medie mobilă pe rând pentru un set de valori specificat al unui număr de rânduri specificat. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. moving-average ( expresie_numerică ; expresie_numerică [ at expresie { ; expresie  } ] [ <for-option> ] [ prefilter ] ) moving-average (  expresie_numerică ; expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie { ; expresie }|for report|auto Exemplu: moving-average ( Qty ; 3 ) Rezultat: Pentru fiecare rând, aceasta afişează cantitatea şi o medie mobilă a rândului curent şi a celor două rânduri anterioare. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Returnează totalul mobil pe rând pentru un set de valori specificat al unui număr de rânduri specificat. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. moving-total ( expresie_numerică ; expresie_numerică [ at expresie{ ; expresie } ] [ <for-option> ] [ prefilter ] ) moving-total (  expresie_numerică ; expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: moving-total ( Qty ; 3 ) Rezultat: Pentru fiecare rând, aceasta afişează cantitatea şi un total mobil al rândului curent şi al celor două rânduri anterioare. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Returnează procentul valorii totale pentru articolele de date selectate. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. Această funcţie apare în exemplul de raport interactiv Calcularea procentului (pe an). percentage ( expresie_numerică [ at expresie  { ; expresie } ] [ <for-option> ] [ prefilter ] ) percentage (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: percentage ( Vânzări98 ) Rezultat: Afişează procentul din vânzările totale pentru 1998 care sunt atribuite fiecărui reprezentant de vânzări. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Returnează o valoare, pe o scară de la unu la o sută, care indică procentul unei distribuţii egale cu sau mai mici decât articolele de date selectate. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. percentile ( expresie_numerică [ at expresie{ ; expresie } ] [ <for-option> ] [ prefilter ] ) percentile (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: percentile ( Vânzări 98 ) Rezultat: Pentru fiecare rând, se afişează procentul de rânduri care sunt egale sau mai mici decât valoarea cantităţii din acel rând. Qty Percentile (Qty) ------ ----------------- 800 1 700 0.875 600 0.75 500 0.625 400 0.5 400 0.5 200 0.25 200 0.25 Returnează rangul unei valori într-un interval specificat. Returnează numere întregi pentru reprezentarea oricărui interval de ranguri, cum ar fi de la 1 (cel mai mare) la 100 (cel mai mic). "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. quantile ( Expresie_numerică ; expresie_numerică [ at expresie{ ; expresie } ] [ <for-option> ] [ prefilter ] ) quantile (  expresie_numerică ; expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: quantile ( Qty ; 4 ) Rezultat: Returnează cantitatea, valoarea rangului cantităţii şi valorile cantităţii împărţite în 4 grupuri cuantile (cuartile). Qty Rank Quantile (Qty, 4) ------ ------- --------------- 800 1 1 700 2 1 600 3 2 500 4 2 400 5 3 400 5 3 200 7 4 200 7 4 Returnează rangul unei valori, reprezentată ca întreg de la 1 (cel mai mare) la 4 (cel mai mic), comparativ cu un grup de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. quartile ( expresie numerică [ at expresie{ ; expresie } ] [ <for-option> ] [ prefilter ] ) quartile (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: quartile ( Qty ) Rezultat: Se afişează cantitatea şi cuartila valorii cantităţii reprezentate ca întregi de la 1 (cel mai mare) la 4 (cel mai mic). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Returnează valoarea rangului articolelor de date selectate. Ordinea de sortare este opţională; ordinea descendentă (DESC) este acceptată implicit. Dacă două sau mai multe rânduri sunt egale, atunci există o pauză în secvenţa valorilor ordonate (se mai numeşte şi rang Olimpic). "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. Valorile nule sunt ordonate ultimele. Această funcţie apare în exemplul de raport Top 10 Retailers for 2005 din pachetul GO Data Warehouse (analysis). rank ( expresie [ ASC|DESC ] { ; expresie [ ASC|DESC ] } [ at expresie { ; expresie  } ] [ <for-option> ] [ prefilter ] ) rank ( [ distinct ] expresie [ ASC|DESC ] { ; expresie [ ASC|DESC ] } [ <for-option>] [ prefilter ] ) <for-option> ::= for expresie { ; expresie  }|for report|auto Exemplu: rank ( Sales 98 ) Rezultat: Pentru fiecare rând, returnează valoarea rangului vânzărilor din 1998 atribuită fiecărui reprezentant de vânzări. Unele numere sunt omise când este egalitate între rânduri. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Returnează media cumulativă pe rând (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-average ( expresie_numerică [ at expresie { ; expresie  } ] [ <for-option> ] [ prefilter ] ) running-average (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie { ; expresie  }|for report|auto Exemplu: running-average ( Qty ) Rezultat: Pentru fiecare rând se afişează cantitatea şi o medie cumulativă a rândului curent şi a rândurilor anterioare. Name Qty Avg Running-Average for name ------- ------ ------ ----------------------- Smith 7 5 7 Smith 3 5 5 Smith 6 5 5.33 Smith 4 5 5 Wong 3 4 3 Wong 5 4 4 Returnează numărarea cumulativă pe rând (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-count ( expresie_numerică [ at expresie { ; expresie  } ] [ <for-option> ] [ prefilter ] ) running-count (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie { ; expresie  }|for report|auto Exemplu: running-count ( Qty ) Rezultat: Pentru fiecare rând se afişează cantitatea şi un număr cumulativ al poziţiei rândului curent. Name Qty Count Running-Count for name ------- ------ --------- ------------------------ Smith 7 4 1 Smith 3 4 2 Smith 6 4 3 Smith 4 4 4 Wong 3 3 1 Wong 5 3 2 Returnează o diferenţă cumulativă pe rând, calculată ca diferenţa dintre valoarea rândului curent şi rândul precedent (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-difference ( expresie_numerică [ at expresie { ; expresie  } ] [ <for-option> ] [ prefilter ] ) running-difference (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie { ; expresie  }|for report|auto Exemplu: running-difference ( Qty ) Rezultat: Se afişează pentru fiecare rând cantitatea şi diferenţa cumulativă dintre valoarea din rândul curent şi cea din rândul precedent. Name Qty Running-Difference for name ------- ------ --------------------------- Smith 7 NULL Smith 3 -4 Smith 6 3 Smith 4 -2 Wong 3 -1 Wong 5 2 Returnează maximumul cumulativ pe rând (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-maximum (  expresie_numerică [ at expresie { ; expresie } ] [ <for-option> ] [ prefilter ] ) running-maximum (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie { ; expresie }|for report|auto Exemplu: running-maximum ( Qty ) Rezultat: Pentru fiecare rând se afişează cantitatea şi un maxim cumulativ al rândului curent şi al rândurilor anterioare. Name Qty Max Running-Maximum (Qty) for name ------- ------ ------ ------------------------- Smith 2 7 2 Smith 3 7 3 Smith 6 7 6 Smith 7 7 7 Wong 3 5 3 Wong 5 5 5 Returnează minimumul cumulativ pe rând (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-minimum ( expresie_numerică [ at expresie { ; expresie } ] [ <for-option> ] [ prefilter ] ) running-minimum (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: running-minimum ( Qty ) Rezultat: Pentru fiecare rând se afişează cantitatea şi un minim cumulativ al rândului curent şi al rândurilor anterioare. Name Qty Min Running-Minimum (Qty) for name ------- ----- ------ -------------------------- Smith 7 2 7 Smith 3 2 3 Smith 6 2 3 Smith 2 2 2 Wong 4 3 4 Wong 5 3 4 Returnează un total cumulativ pe rând (inclusiv rândul curent) pentru un set de valori. "<for-option>" defineşte scopul funcţiei. Opţiunea "at" defineşte nivelul de agregare şi poate fi utilizată numai în contextul surselor de date relaţionale. running-total ( expresie_numerică [ at expresie { ; expresie } ] [ <for-option> ] [ prefilter ] ) running-total (  expresie_numerică [ <for-option> ] [ prefilter ] ) <for-option> ::= for expresie{ ; expresie }|for report|auto Exemplu: running-total ( Qty ) Rezultat: Pentru fiecare rând se afişează cantitatea şi un total cumulativ al rândului curent şi al rândurilor anterioare. Name Qty Total Running-Total (Qty) for name ------- ------ -------- ------------------------- Smith 2 18 2 Smith 3 18 5 Smith 6 18 11 Smith 7 18 18 Wong 3 12 3 Wong 5 12 8 Returnează devierea standard a articolelor de date selectate. standard-deviation (  expresie [ auto ] ) standard-deviation (  expresie for [ all|any ] expresie { ; expresie  } ) standard-deviation (  expresie for report ) Exemplu: standard-deviation ( ProductCost ) Rezultat: Returnează o valoare care indică devierea dintre costurile produsului şi costul mediu al produsului. Calculează devierea standard a populaţiei şi returnează rădăcina pătrată a varianţei populaţiei. standard-deviation-pop (  expresie [ auto ] ) standard-deviation-pop (  expresie for [ all|any ] expresie { ; expresie  } ) standard-deviation-pop (  expresie for report ) Exemplu: standard-deviation-pop ( CostProdus ) Rezultat: Returnează o valoare a rădăcinii pătrate a variaţiei populaţiei. Calculează devierea standard eşantion şi returnează rădăcina pătrată a variaţiei de populare. standard-deviation-samp (  expresie [ auto ] ) standard-deviation-samp (  expresie for [ all|any ] expresie { ; expresie } ) standard-deviation-samp (  expresie for report ) Exemplu: standard-deviation-samp ( ProductCost ) Rezultat: Returnează o valoare a rădăcinii pătrate a vaiaţiei eşantion. Returnează rangul unei valori ca înalt, mediu sau scăzut într-un grup de valori. tertile (  expresie [ auto ] ) tertile (  expresie for [ all|any ] expresie { ; expresie  } ) tertile (  expresie for report ) Exemplu: tertile ( Qty ) Rezultat: Afişează cantitatea, cuantila valorii cantităţii separată în terţile şi valorile cantităţii separate în terţile. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Returnează valoarea totală a articolelor de date selectate. Distinct reprezintă o expresie alternativă compatibilă cu versiuni mai vechi ale produsului. Această funcţie apare în exemplul de raport Budget vs. Actual din pachetul GO Data Warehouse (analysis). total ( [ distinct ] expresie [ auto ] ) total ( [ distinct ] expresie for [ all|any ] expresie{ ; expresie } ) total ( [ distinct ] expresie for report ) Exemplu: total ( Sales ) Rezultat: Returnează valoarea totală a tuturor valorilor Vânzări. Funcţii statistice Această listă conţine funcţii de sumar predefinite da natură statistică. Returnează varianţa articolelor de date selectate. variance (  expresie [ auto ] ) variance (  expresie for [ all|any ] expresie { ; expresie } ) variance (  expresie for report ) Exemplu: variance ( Product Cost ) Rezultat: Returnează o valoare indicând cât de mult variază costurile produsului faţă de costul mediu al produsului. Returnează varianţa populaţiei unui set de numere după eliminarea valorilor nule din acest set. variance-pop (  expresie [ auto ] ) variance-pop (  expresie for [ all|any ] expresie { ; expresie } ) variance-pop (  expresie for report ) Exemplu: variance-pop ( Qty ) Rezultat: Pentru fiecare rând se afişează variaţia populaţiei unui set de numere după eliminarea valorilor nule din acest set. Returnează variaţia eşantion a unui set de numere după înlăturarea valorilor nule din acest set. variance-samp (  expresie [ auto ] ) variance-samp (  expresie for [ all|any ] expresie { ; expresie } ) variance-samp (  expresie for report ) Exemplu: variance-samp ( Qty ) Rezultat: Pentru fiecare rând, returnează variaţia eşantion a unui set de numere după înlăturarea valorilor nule din acest set. corr ( expresie_numerică1 ;  expresie_numerică2  [ auto ] ) corr ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) corr ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează coeficientul de corelare al unui set de perechi de numere. Acesta este calculat după cum urmează: COVAR_POP(expresie_numerică1; expresie_numerică2) / (STDDEV_POP(expresie_numerică1) * STDDEV_POP(expresie_numerică2)) Exemplu: corr ( Cost ;  Marjă  for report) Rezultat: Coeficientul corelaţiei între Cost şi Marjă. Cost Margin corr (Cost, Margin for report) ------- ---------- ----------------------------------------- 4 0.33 0.0872648 5 0.28 0.0872648 9.22 0.23 0.0872648 15.93 0.28 0.0872648 34.97 0.3 0.0872648 covariance-pop ( expresie_numerică1 ;  expresie_numerică2 ) covariance-pop ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) covariance-pop ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează covarianţa de populare a unui set de perechi de numere. Exemplu: covariance-pop ( Cost ;  Marjă  for report) Rezultat: Covariaţia populaţiei între Cost şi Marjă. Cost Margin covariance-pop (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.032384 5 0.28 0.032384 9.22 0.23 0.032384 15.93 0.28 0.032384 34.97 0.3 0.032384 covariance-samp ( expresie_numerică1 ;  expresie_numerică2 ) covariance-samp ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) covariance-samp ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează covarianţa eşantion a unui set de perechi de numere. Exemplu: covariance-samp ( Cost ;  Marjă  for report) Rezultat: Covariaţie eşantion între Cost şi Marjă. Cost Margin covariance-samp (Cost, Margin for report) ------- ---------- ------------------------------------------------------------ 4 0.33 0.04048 5 0.28 0.04048 9.22 0.23 0.04048 15.93 0.28 0.04048 34.97 0.3 0.04048 regression-average-x ( expresie_numerică1 ;  expresie_numerică2 ) regression-average-x ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-average-x ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează media variabilei independente (expresie_numerică2) a liniei de regresie. Exemplu: regression-average-x ( Cost ;  Marjă  for report) Rezultat: Media Marjei în cadrul liniei de regresie pentru Cost şi Marjă. Cost Margin regression-average-x (Cost, Margin for report) ------- ---------- ----------------------------------------------------------------- 4 0.33 0.284 5 0.28 0.284 9.22 0.23 0.284 15.93 0.28 0.284 34.97 0.3 0.284 regression-average-y ( expresie_numerică1 ;  expresie_numerică2 ) regression-average-y ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-average-y ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează media variabilei dependente (expresie_numerică1) a liniei de regresie. Exemplu: regression-average-y ( Cost ;  Marjă  for report) Rezultat: Media Costului în cadrul liniei de regresie pentru Cost şi Marjă. Cost Margin regression-average-y (Cost, Margin for report) ------- ---------- ----------------------------------------------------------------- 4 0.33 13.824 5 0.28 13.824 9.22 0.23 13.824 15.93 0.28 13.824 34.97 0.3 13.824 regression-count ( expresie_numerică1 ;  expresie_numerică2 ) regression-count ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-count ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează numărul de numere nenule utilizate pentru a ajusta linia de regresie. Exemplu: regression-count ( Cost ;  Marjă  for report) Rezultat: Numărul valorilor diferite de zero utilizate pentru potrivirea în linia de regresie pentru Cost şi Marjă. Cost Margin regression-count (Cost, Margin for report) ------- ---------- ----------------------------------------------------------- 4 0.33 5 5 0.28 5 9.22 0.23 5 15.93 0.28 5 34.97 0.3 5 regression-intercept ( expresie_numerică1 ;  expresie_numerică2 ) regression-intercept ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-intercept ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează segmentul y al liniei de regresie. Acesta este calculat după cum urmează: AVG(expresie_numerică1) - REGR_SLOPE(expresie_numerică1; expresie_numerică2) * AVG(expresie_numerică2) Exemplu: regression-intercept ( Cost ;  Marjă  for report) Rezultat: Intercepţia y a liniei de regresie pentru Cost şi Marjă. Cost Margin regression-intercept (Cost, Margin for report) ------- ---------- ---------------------------------------------------------------- 4 0.33 5.18015038 5 0.28 5.18015038 9.22 0.23 5.18015038 15.93 0.28 5.18015038 34.97 0.3 5.18015038 regression-r2 ( expresie_numerică1 ;  expresie_numerică2 ) regression-r2 ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-r2 ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează coeficientul de determinare (cunoscut de asemenea ca "R-pătrat" sau "concordanţă") al liniei de regresie. Această valoare este calculată în funcţie de condiţiile următoare: IF VAR_POP(expresie_numerică2) = 0 THEN NULL IF VAR_POP(expresie_numerică1) = 0 AND VAR_POP(expresie_numerică2) <> 0 THEN 1 IF VAR_POP(expresie_numerică1) > 0 and VAR_POP(expresie_numerică2) <> 0 THEN POWER(CORR (expresie_numerică1; expresie_numerică2)) Exemplu: regression-r2 ( Cost ;  Marjă  for report) Rezultat: Coeficientul determinării liniei de regresie pentru Cost şi Marjă. Cost Margin regression-r2 (Cost, Margin for report) ------- ---------- ------------------------------------------------------ 4 0.33 0.00761514 5 0.28 0.00761514 9.22 0.23 0.00761514 15.93 0.28 0.00761514 34.97 0.3 0.00761514 regression-slope ( expresie_numerică1 ;  expresie_numerică2 ) regression-slope ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-slope ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează panta liniei de regresie. Aceasta este calculată după cum urmează: COVAR_POP(expresie_numerică1;expresie_numerică2) / VAR_POP(expresie_numerică2) Exemplu: regression-slope ( Cost ;  Marjă  for report) Rezultat: Panta liniei de regresie pentru Cost şi Marjă. Cost Margin regression-slope (Cost, Margin for report) ------- ---------- ----------------------------------------------------------- 4 0.33 30.43609023 5 0.28 30.43609023 9.22 0.23 30.43609023 15.93 0.28 30.43609023 34.97 0.3 30.43609023 regression-sxx ( expresie_numerică1 ;  expresie_numerică2 ) regression-sxx ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-sxx ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează calculul următor după eliminarea perechilor NULL: REGR_COUNT(expresie_numerică1; expresie_numerică2) * VAR_POP(expresie_numerică2) Exemplu: regression-sxx ( Cost ;  Marjă  for report) Rezultat: Calculul sxx al liniei de regresie pentru Cost şi Marjă. Cost Margin regression-sxx (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.00532 5 0.28 0.00532 9.22 0.23 0.00532 15.93 0.28 0.00532 34.97 0.3 0.00532 regression-sxy ( expresie_numerică1 ;  expresie_numerică2 ) regression-sxy ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-sxy ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează calculul următor după eliminarea perechilor NULL: REGR_COUNT(expresie_numerică1; expresie_numerică2) * COVAR_POP(expresie_numerică1; expresie_numerică2) Exemplu: regression-sxy ( Cost ;  Marjă  for report) Rezultat: Calculul sxy al liniei de regresie pentru Cost şi Marjă. Cost Margin regression-sxy (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 0.16192 5 0.28 0.16192 9.22 0.23 0.16192 15.93 0.28 0.16192 34.97 0.3 0.16192 regression-syy ( expresie_numerică1 ;  expresie_numerică2 ) regression-syy ( expresie_numerică1 ;  expresie_numerică2 for [ all|any ] expresie { ; expresie } ) regression-syy ( expresie_numerică1 ;  expresie_numerică2 for report ) Returnează calculul următor după eliminarea perechilor NULL: REGR_COUNT(expresie_numerică1; expresie_numerică2) * VAR_POP(expresie_numerică1) Exemplu: regression-syy ( Cost ;  Marjă  for report) Rezultat: Calculul syy al liniei de regresie pentru Cost şi Marjă. Cost Margin regression-syy (Cost, Margin for report) ------- ---------- --------------------------------------------------------- 4 0.33 647.15932 5 0.28 647.15932 9.22 0.23 647.15932 15.93 0.28 647.15932 34.97 0.3 647.15932 Sumare membri Această listă conţine funcţiile predefinite care returnează o singură valoare de sumar pentru un set de membri sau o valoare de sumar diferită pentru fiecare membru al unui set de membri.
Eroare Există o eroare în expresia dumneavoastră la token-ul evidenţiat.
Construcţii Această listă conţine construcţii şi şabloane care pot fi folosite pentru crearea unei expresii. Şabloanele combină funcţii multiple într-un grup. De exemplu, şablonul de căutare case include funcţiile case, when, else şi end. case căutare Această construcţie este şablonul pentru un case de căutare, inclusiv funcţiile CASE, WHEN, ELSE şi END. CASE WHEN [Ţara] = 'Canada' THEN ([Preţ de listă] * 0,60) WHEN [CodŢară] > 100 THEN [Preţ de listă] * 0,80 ELSE [Preţ de listă] END case simplu Această construcţie este şablonul pentru un case simplu, incluzând funcţiile CASE, WHEN, ELSE şi END. CASE [Country] WHEN 'Canada' THEN ([List Price] * 0.60) WHEN 'Australia' THEN [List Price] * 0.80 ELSE [List Price] END if then else Această construcţie reprezintă şablonul pentru o instrucţiune if...then...else. Această construcţie apare în exemplul de raport Top 10 Retailers for 2005 din pachetul GO Data Warehouse (analysis). IF ([Country] = 'Canada') THEN ([List Price] * 0.60) ELSE ([List Price]) in_range Acesta este şablonul pentru o expresie in_range. [cod] IN_RANGE { :30 ; 40; 50; 999: } Exemplu: [cod] IN_RANGE { 5 } Rezultat: Aceasta este echivalentă cu [cod] = 5. Exemplu: [cod] IN_RANGE { 5: } Rezultat: Aceasta este echivalentă cu [cod] >= 5. Exemplu: [cod] IN_RANGE { :5 } Rezultat: Aceasta este echivalentă cu [cod] <= 5. Exemplu: [cod] IN_RANGE { 5:10 } Rezultat: Aceasta este echivalentă cu ( [cod] >= 5 şi [code] <= 10 ). Exemplu: [cod] IN_RANGE { :5;10;20: } Rezultat: Aceasta este echivalentă cu ( [cod] <= 5 sau [code] = 10 sau [cod] >= 20 ).
Predicate perioadă Această listă conţine predicate care pot fi utilizate pentru a compara expresiile de perioade. contains Întoarce "true" dacă "expresie_perioadă1" contains "expresie_perioadă2"; ceea ce înseamnă, "true" este returnat dacă prima perioadă contains valoarea dată-oră, sau toate valorile, care sunt conţinute în a doua perioadă. expresie_perioadă1 contains ( expresie_perioadă2 | expresie_dată-oră ) perioada( 1989-11-01, 1991-05-19 ) contains perioada( 1991-05-19, 1991-06-04 ) Rezultat: false perioada( 1989-11-01, 1991-05-19 ) contains perioada( 1990-05-19, 1991-04-04 ) Rezultat: true perioada( 1989-11-01, 1991-05-19 ) contains 1991-04-04 Rezultat: true egal Returnează "true" dacă "period_expression1" şi "period_expression2" au aceleaşi valori de început şi terminare perioadă. period_expression1 equals period_expression2 perioada( 1989-11-01, 1991-05-19 ) equals perioada( 1989-11-01, 1991-05-19 ) Rezultat: true immediately precedes Returnează "true" dacă "period_expression1" immediately precedes "period_expression2"; adică, valoarea de final a primei perioade coincide cu valoarea de început a celei de a doua perioade. period_expression1 immediately precedes period_expression2 perioada( 1989-11-01, 1991-05-19 ) immediately precedes perioada( 1991-05-19, 1991-06-04 ) Rezultat: true perioada(( 1989-11-01, 1991-05-18 ) immediately precedes perioada(( 1991-05-19, 1991-06-04 ) Rezultat: false immediately succeeds Returnează "true" dacă "period_expression1" immediately succeeds "period_expression2"; adică, valoarea de început este egală cu valoare de sfârşit a celei de a doua perioade. period_expression1 immediately succeeds period_expression2 perioada( 1991-05-19, 1994-01-10 ) immediately succeeds perioada( 1991-01-19, 1991-05-19 ) Rezultat: true perioada( 1991-05-19, 1994-01-10 ) immediately succeeds perioada( 1991-01-20, 1991-05-18 ) Rezultat: false overlaps Returnează "true" dacă "period_expression1" overlaps "period_expression2"; adică, au cel puţin o valoare în comun. period_expression1 overlaps period_expression2 perioada( 1991-05-19, 1994-01-10 ) overlaps perioada( 1993-01-19, 1995-05-19 ) Rezultat: true precedes Returnează "true" dacă "period_expression1" precedes "period_expression2"; adică, toate valorile conţinute în prima perioadă sunt mai mici sau egale decât valoarea de început a celei de a doua perioade. period_expression1 precedes period_expression2 perioada( 1989-11-01, 1991-05-19 ) precedes perioada( 1991-05-19, 1991-06-04 ) Rezultat: true perioada( 1989-11-01, 1991-05-18 ) precedes perioada( 1991-05-19, 1991-06-04 ) Rezultat: true succeeds Returnează "true" dacă "period_expression1" succeeds "period_expression2"; adică, toate valorile conţinute în prima perioadă sunt mai mari sau egale decât valoarea de început a celei de a doua perioade. period_expression1 succeeds period_expression2 perioada( 1991-05-19, 1994-01-10 ) succeeds perioada( 1991-01-19, 1991-05-19 ) Rezultat: true perioada( 1991-05-20, 1994-01-10 ) succeeds perioada( 1991-01-20, 1991-05-19 ) Rezultat: true
Funcţii de dată-oră pentru afaceri Această listă conţine funcţii de afaceri pentru a executa calcule cu date şi ore. _add_seconds ( expresie_timp ; expresie_întreg ) Returnează timpul sau data-ora, în funcţie de formatul "expresiei_timp", care rezultă din adăugarea "expresie_întreg" secunde la "expresie_timp". Exemplu: _add_seconds ( 13:04:59 ; 1 ) Rezultat: 13:05:00 Exemplu: _add_seconds ( 2002-04-30 12:10:10.000; 1 ) Rezultat: 2002-04-30 12:10:11.000 Exemplu: _add_seconds ( 2002-04-30 00:00:00.000; 1/100 ) Note that the second argument is not a whole number. Aceasta este suportată de către unele tehnologii de baze de date şi incrementeaza porţiunea de timp. Rezultat: 2002-04-30 00:00:00.010 _add_minutes ( expresie_timp; expresie_întreg ) Returnează timpul sau data-ora, în funcţie de formatul "expresiei_timp", care rezultă din adăugarea "expresie_întreg" minute la "expresie_timp". Exemplu: _add_minutes ( 13:59:00 ; 1 ) Rezultat: 14:00:00 Exemplu: _add_minutes ( 2002-04-30 12:59:10.000; 1 ) Rezultat: 2002-04-30 13:00:10.000 Exemplu: _add_minutes ( 2002-04-30 00:00:00.000; 1/60 ) Note that the second argument is not a whole number. Aceasta este suportată de către unele tehnologii de baze de date şi incrementeaza porţiunea de timp. Rezultat: 2002-04-30 00:00:01.000 _add_hours ( expresie_timp; expresie_întreg ) Returnează ora sau dată-oră, în funcţie de formatul "expresie_timp", care rezultă din adăugarea de "expresie_întreg" ore la "expresie_timp". Exemplu: _add_hours ( 13:59:00 ; 1 ) Rezultat: 14:59:00 Exemplu: _add_hours ( 2002-04-30 12:10:10.000; 1 ) Rezultat: 2002-04-30 13:10:10.000 Exemplu: _add_hours ( 2002-04-30 00:00:00.000; 1/60 ) Note that the second argument is not a whole number. Aceasta este suportată de către unele tehnologii de baze de date şi incrementeaza porţiunea de timp. Rezultat: 2002-04-30 00:01:00.000 _add_days ( expresie_dată; expresie_întreg ) Returnează data sau data-ora, în funcţie de formatul "expresiei_dată", care rezultă din adăugarea "expresie_întreg" zile la "expresie_dată". Exemplu: _add_days ( 2002-04-30 ; 1 ) Rezultat: 2002-05-01 Exemplu: _add_days ( 2002-04-30 12:10:10.000; 1 ) Rezultat: 2002-05-01 12:10:10.000 Exemplu: _add_days ( 2002-04-30 00:00:00.000; 1/24 ) Reţineţi că al doilea argument nu este număr întreg. Aceasta este suportată de către unele tehnologii de baze de date şi incrementeaza porţiunea de timp. Rezultat: 2002-04-30 01:00:00.000 _add_months ( expresie_dată; expresie_întreg ) Adaugă "expresie_întreg" luni la "expresie_dată". Dacă nuna rezultată are mai puţine zile decât componenta lună, atunci este returnată ultima zi a lunii rezultate. În toate celelalte cazuri valoarea rezultată are aceeaşi componetă zi din lună ca şi "expresie_dată". Exemplu: _add_months ( 2012-04-15 ; 3 ) Rezultat: 2012-07-15 Rezultatul nu este ultima zi a lunii rezultate. Exemplu: _add_months ( 2012-02-29 ; 1 ) Rezultat: 2012-03-29 Utilizaţi funcţia _last_of_month pentru a întoarce ultima zi a lunii. Exemplu: _last_of_month ( _add_months ( 2012-02-29 ; 1 ) ) Rezultat: 2012-03-31 Ziua este ajustată la ultima zi din luna rezultată. Exemplu: _add_months ( 2012-01-31 ; 1 ) Rezultat: 2012-02-29 Adăugaţi la o amprentă de timp. Exemplu: _add_months ( 2002-04-30 12:10:10.000 ; 1 ) Rezultat: 2002-05-30 12:10:10.000 _add_years ( expresie_dată; expresie_întreg ) Adaugă "expresie_întreg" ani la "expresie_dată". Dacă "expresie_dată" este 29 februarie şi anul rezultat nu este un an bisect, atunci ziua rezultată este setată la 28 februarie. În toate celelalte cazuri valoarea rezultată are aceeaşi componetă zi şi lună ca şi "expresie_dată". Exemplu: _add_years ( 2012-04-15 ; 1 ) Rezultat: 2013-04-15 29 februuarie este ajustată pentru anii care nu bisecţi. Exemplu: _add_years ( 2012-02-29 ; 1 ) Rezultat: 2013-02-28 Adăugaţi la o amprentă de timp. Exemplu: _add_years ( 2002-04-30 12:10:10.000 ; 1 ) Rezultat: 2003-04-30 12:10:10.000 _age ( expresie_dată ) Returnează un număr obţinut din scăderea "expresie_dată" din ziua curentă. Valoarea returnată are forma AAAALLZZ, unde AAAA reprezintă numărul de ani, LL reprezintă numărul de luni, iar ZZ reprezintă numărul de zile. Exemplu: _age ( 1990-04-30 ) (daca ziua de azi este 2003-02-05) Rezultat: 120906, adică 12 ani, 9 luni şi 6 zile. _date_to_int ( expresie_dată ) Returnează reprezentarea de întreg pentru "expresie_dată". Valoarea returnată are forma AAAALLZZ, unde AAAA reprezintă numărul de ani, LL reprezintă numărul de luni, iar ZZ reprezintă numărul de zile. Exemplu: _date_to_int ( 2003-01-01 ) Rezultat: 20030101 _day_of_week ( expresie_dată; întreg ) Returnează ziua săptămânii (de la 1 la 7), unde 1 este prima zi a săptămânii, conform indicaţiilor celui de-al doilea parametru (de la 1 la 7, 1 fiind luni şi 7 fiind duminică). Reţineţi că în standardul ISO 8601 săptămâna începe cu Luni ca fiind ziua 1. Exemplu: _day_of_week ( 2003-01-01 ; 1 ) Rezultat: 3 _day_of_year ( Expresie_dată ) Returnează ziua anului (de la 1 la 366) în "expresie_dată". Cunoscută şi ca zi iuliană. Exemplu: _day_of_year ( 2003-03-01 ) Rezultat: 61 _days_between ( expresie_dată1 ; expresie_dată2 ) Returnează un număr pozitiv sau negativ care reprezintă numărul zilelor dintre "expresie1_dată" şi "expresie2_dată". Dacă "expresie1_dată" < "expresie2_dată", atunci rezultatul va fi un număr negativ. Exemplu: _days_between ( 2002-06-21 ; 2002-04-30 ) Rezultat: 52 Exemplu: _days_between ( 2002-04-30 ; 2002-06-21 ) Rezultat: -52 _days_to_end_of_month ( expresie_dată ) Returnează un număr care reprezintă numărul de zile rămase din luna reprezentată prin "expresie_dată". Exemplu: _days_to_end_of_month ( 2002-04-20 14:30:22.123 ) Rezultat: 10 _first_of_month ( expresie_dată ) Returnează o dată sau o dată-oră, în funcţie de argument, care este obţinută prin convertirea "expresiei_dată" într-o dată cu acelaşi an şi lună dar cu ziua setată pe 1. Exemplu: _first_of_month ( 2002-04-20 ) Rezultat: 2002-04-01 Exemplu: _first_of_month ( 2002-04-20 12:10:10.000 ) Rezultat: 2002-04-01 12:10:10.000 _last_of_month ( expresie_dată ) Returnează o dată sau o dată-oră, în funcţie de argument, care este ultima zi din luna reprezentată prin "expresie_dată". Exemplu: _last_of_month ( 2002-01-14 ) Rezultat: 2002-01-31 Exemplu: _last_of_month ( 2002-01-14 12:10:10.000 ) Rezultat: 2002-01-31 12:10:10.000 _make_timestamp ( expresie1_întreg; expresie2_întreg; expresie3_întreg  ) Returnează o amprentă de timp construită din "expresie1_întreg" (anul), "expresie2_întreg" (luna) şi "expresie3_întreg" (ziua). Fragmentul orar are valoarea implicită 00:00:00.000. Exemplu: _make_timestamp ( 2002 ; 01 ; 14 ) Rezultat: 2002-01-14 00:00:00.000 _months_between ( expresie1_dată; expresie2_dată ) Returnează un întreg pozitiv sau negativ care reprezintă numărul lunilor dintre "expresie1_dată" şi "expresie2_dată". Dacă "expresie1_dată" este înainte de "expresie2_dată", atunci este returnat un număr negativ. Exemplu: _months_between ( 2002-04-03 ; 2002-01-30 ) Rezultat: 2 Exemplu: _months_between ( 2002-01-30 ; 2002-04-03 ) Rezultat: -2 _shift_timezone ( valoare_amprentă_de_timp ; de_la_fusul_orar ; fus_orar_ţintă ) _shift_timezone ( valoare_amprentă_de_timp_cu_fus_orar ; fus_orar_ţintă ) Deplasează o valoare de amprentă de timp de la un fus orar la alt fus orar. Această funcţie ţine cont de DST (Daylight Savings Time) când este aplicabil. Dacă primul argument este de tipul "amprentă de timp", atunci al doilea şi al treilea argument reprezintă fusurile orare "de la" şi respectiv "ţintă". Dacă primul argument este de tipul "amprentă de timp cu fus orar", atunci fusul orar "de la" este deja inclus în primul argument, prin urmare al doilea argument reprezintă fusul orar "ţintă". Tipul de date al primului argument determină şi tipul de date al valorii returnate. Al doilea şi al treilea argument sunt de tipul "şir" şi reprezintă identificatori de fus orar. O listă cu aceşti identificatori poate fi găsită mai jos. Notă: utilizarea acestei funcţii va cauza procesară locală. Exemplu: _shift_timezone( 2013-06-30 12:00:00 ; 'America/New_York' ; 'GMT' ) Rezultat: 2013-06-30 16:00:00 Exemplu: _shift_timezone( 2013-11-30 12:00:00-05:00 ; 'America/Vancouver' ) Rezultat: 2013-11-30 09:00:00-08:00 Identificatori de fus orar: GMT (GMT+00:00) Greenwich Mean Time Europe/Lisbon (GMT+00:00) Portugal Time (Lisbon) Europe/Amsterdam (GMT+01:00) Netherlands Time Europe/Paris (GMT+01:00) France Time Europe/Berlin (GMT+01:00) Germany Time Europe/Brussels (GMT+01:00) Belgium Time Europe/Rome (GMT+01:00) Italy Time Europe/Vienna (GMT+01:00) Austria Time Africa/Cairo (GMT+02:00) Egypt Time Africa/Johannesburg (GMT+02:00) South Africa Time Europe/Athens (GMT+02:00) Greece Time Africa/Addis_Ababa (GMT+03:00) Ethiopia Time Asia/Dubai (GMT+04:00) United Arab Emirates Time Asia/Karachi (GMT+05:00) Pakistan Time Asia/Calcutta (GMT+05:30) India Time Asia/Dhaka (GMT+06:00) Bangladesh Time Asia/Saigon (GMT+07:00) Vietnam Time Asia/Hong_Kong (GMT+08:00) Hong Kong SAR China Time Asia/Tokyo (GMT+09:00) Japan Time Australia/Darwin (GMT+09:30) Australia Time (Darwin) Australia/Sydney (GMT+10:00) Australia Time (Sydney) Pacific/Guadalcanal (GMT+11:00) Solomon Islands Time America/Argentina/San_Juan (GMT-03:00) Argentina Time (San Juan) America/Buenos_Aires (GMT-03:00) Argentina Time (Buenos Aires) America/Sao_Paulo (GMT-03:00) Brazil Time (Sao Paulo) America/St_Johns (GMT-03:30) Canada Time (St. John’s) America/Puerto_Rico (GMT-04:00) Puerto Rico Time America/New_York (GMT-05:00) United States Time (New York) America/Toronto (GMT-05:00) Canada Time (Toronto) America/Jamaica (GMT-05:00) Jamaica Time America/Chicago (GMT-06:00) United States Time (Chicago) America/Mexico_City (GMT-06:00) Mexico Time (Mexico City) America/Cambridge_Bay (GMT-07:00) Canada Time (Cambridge Bay) America/Edmonton (GMT-07:00) Canada Time (Edmonton) America/Yellowknife (GMT-07:00) Canada Time (Yellowknife) America/Denver (GMT-07:00) United States Time (Denver) America/Chihuahua (GMT-07:00) Mexico Time (Chihuahua) America/Los_Angeles (GMT-08:00) United States Time (Los Angeles) America/Tijuana (GMT-08:00) Mexico Time (Tijuana) America/Vancouver (GMT-08:00) Canada Time (Vancouver) America/Anchorage (GMT-09:00) United States Time (Anchorage) Pacific/Honolulu (GMT-10:00) United States Time (Honolulu) Pacific/Tahiti (GMT-10:00) French Polynesia Time (Tahiti) Pacific/Midway (GMT-11:00) U.S. Minor Outlying Islands Time (Midway) Pacific/Niue (GMT-11:00) Niue Time Se poate folosi şi un identificator de fus orar personalizat, folosind formatul GMT(+|-)HH:MM. De exemplu, GMT-06:30 sau GMT+02:00. _week_of_year ( expresie_dată ) Returnează numărul săptămânii din an a "expresie_dată" conform standardului ISO 8601. Săptămâna 1 a anului este prima săptămână a anului care conţine o zi de joi, echivalentă cu prima săptămână care conţine 4 ianuarie. Săptămâna începe cu ziua de luni (ziua 1) şi se termină cu duminică (ziua 7). Exemplu: _week_of_year ( 2003-01-01 ) Rezultat: 1 _years_between ( expresie1_dată; expresie2_dată ) Returnează un întreg pozitiv sau negativ care reprezintă numărul anilor dintre "expresie1_dată" şi "expresie2_dată". Dacă "expresie1_dată" < "expresie2_dată" atunci este returnată o valoare negativă. Exemplu: _years_between ( 2003-01-30 ; 2001-04-03 ) Rezultat: 1 Exemplu: _years_between ( 2001-04-03 ; 2003-01-30 ) Rezultat: -1 _ymdint_between ( expresie1_dată ; expresie2_dată ) Returnează un număr care reprezintă diferenţa dintre "expresie1_dată" şi "expresie2_dată". Valoarea returnată are forma AAAALLZZ, unde AAAA reprezintă numărul de ani, LL reprezintă numărul de luni, iar ZZ reprezintă numărul de zile. Exemplu: _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Rezultat: 120905, adică 12 ani, 9 luni şi 5 zile. _year ( expresie_dată ) Returnează valoarea câmpului de an în "date_expression". Exemplu: _year ( 2003-03-01 ) Rezultat: 2003 _month ( expresie_dată ) Returnează valoarea câmpului de lună în "date_expression". Exemplu: _month ( 2003-03-01 ) Rezultat: 3 _day ( expresie_dată ) Returnează valoarea câmpului de zi în "date_expression". Exemplu: _day ( 2003-03-01 ) Rezultat: 1 _hour ( expresie_dată ) Returnează valoarea câmpului de oră în "date_expression". Exemplu: _hour ( 2002-01-31 12:10:10.254 ) Rezultat: 12 _minute ( expresie_dată ) Returnează valoarea câmpului de minut în "date_expression". Exemplu: _minute ( 2002-01-31 12:10:10.254 ) Rezultat: 10 _second ( expresie_dată ) Returnează valoarea câmpului de secundă în "date_expression". Exemplu: _second ( 2002-01-31 12:10:10.254 ) Rezultat: 10.254 _timezone_hour ( amprentă_de_timp_cu_valoare_de_fus_orar ) _timezone_hour ( oră_cu_valoare_de_fus_orar ) Returnează valoarea câmpului de oră al fusului orar dintr-o expresie. Expresia trebuie să fie de tip "amprentă de timp cu fus orar" sau "oră cu fus orar". Exemplu: _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Rezultat: -5 _timezone_minute ( amprentă_de_timp_cu_valoare_de_fus_orar ) _timezone_minute ( oră_cu_valoare_de_fus_orar ) Returnează valoarea câmpului de minute al fusului orar dintr-o expresie. Expresia trebuie să fie de tip "amprentă de timp cu fus orar" sau "oră cu fus orar". Exemplu: _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Rezultat: -30 _start_of_day ([ expresie_dată ]) Returnează începutul "expresie_dată" sau începutul zilei de azi ca amprentă de timp Exemplu: _start_of_day ( 2014-11-23 12:10:10.254 ) Rezultat: 2014-11-23 00:00:00 Exemplu: _start_of_day () Rezultat: 2016-01-01 00:00:00 _end_of_day ([ expresie_dată ]) Returnează sfârşitul "expresie_dată" sau sfârşitul zilei de azi ca amprentă de timp. Exemplu: _end_of_day ( 2014-11-23 12:10:10.254 ) Rezultat: 2014-11-23 23:59:59 Exemplu: _end_of_day () Rezultat: 2016-01-01 23:59:59 _unix_timestamp ( expresie_dată ) Returnează numărul de secunde de la 1970-01-01 00:00:00-00 pentru "expresia_dată" dată. Exemplu: _unix_timestamp ( 2014-11-23 ) Rezultat: 1416718800 _from_unixtime ( expresie_întreg ) Returnează ora unix specificată de "expresia_întreg" ca o amprentă de timp cu fus orar. Exemplu: _from_unixtime (1417807335) Rezultat: 2014-12-05 19:22:15+00:00
Funcţii de macro Această listă conţine funcţii care pot fi folosite cu o macroinstrucţiune. O macroinstrucţiune poate conţine una sau mai multe funcţii de macro. O macroinstrucţiune este delimitată de un semn numeric (#) la început şi la sfârşit. Toate elementele dintre semnele numerice sunt considerate expresii de macroinstrucţiune şi se execută la pornire. Pentru funcţiile de macrocomandă care acceptă expresiile tip de date amprentă de timp cu fus orar ca argumente, formatul acceptat este "aaaa-ll-zz hh:mm:ss[.ff]+hh:mm", unde secundele fracţionare sunt opţionale şi pot fi reprezentate de cifre de la 1 la 9. În locul spaţiului care separă intervalul dată de intervalul oră, este acceptat şi caracterul "T". De asemenea, în locul fusului orar "+hh:mm", este acceptat caracterul '"Z" şi va fi procesat ca "+00:00". Funcţiile de macrocomandă care returnează expresiile tip de date amprentă de timp cu fus orar returnează 9 cifre ca setare implicită pentru secundele fracţionare. Funcţia de macrocomandă timestampMask() poate fi utilizată pentru ajustarea ieşirii, dacă este necesar. Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" secunde la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. _add_seconds ( expresie_şir ; expresie_întreg ) Exemplu: # _add_seconds ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2005-11-01 11:59:59.000-05:00 Exemplu: # _add_seconds ( $current_timestamp  1 ) # Rezultat: 2005-11-01 12:00:01.000000000-05:00 Exemplu: # timestampMask ( _add_seconds ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Rezultat: 12:00:01 Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" minute la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. _add_minutes ( expresie_şir ; expresie_întreg ) Exemplu: # _add_minutes ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2005-11-01 11:59:00.000-05:00 Exemplu: # _add_minutes ( $current_timestamp  1 ) # Rezultat: 2005-11-01 12:01:00.000000000-05:00 Exemplu: # timestampMask ( _add_minutes ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Rezultat: 12:01:00 Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" ore la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. _add_hours ( expresie_şir ; expresie_întreg ) Exemplu: # _add_hours ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2005-11-01 13:00:00.000-05:00 Exemplu: # _add_hours ( $current_timestamp  1 ) # Rezultat: 2005-11-01 13:00:00.000000000-05:00 Exemplu: # timestampMask ( _add_hours ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Rezultat: 13:00:00 Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" zile la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. Când primul argument este o dată, specificat ca un şir cu formatul: yyyy-mm-dd, atunci valoarea returnată este un şir formatat ca o dată. _add_days ( expresoe_şir ; expresie_întreg ) Exemplu: # _add_days ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2005-10-31 12:00:00.000000000-05:00 Exemplu: # _add_days ( $current_timestamp ; 1 ) # Rezultat: 2005-11-02 12:00:00.000000000-05:00 Exemplu: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Rezultat: 2005-11-02 Exemplu: # _add_days( '2019-11-14' ; 3 ) # Rezultat: 2019-11-17 Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" luni la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. Când primul argument este o dată, specificat ca un şir cu formatul: yyyy-mm-dd, atunci valoarea returnată este un şir formatat ca o dată. _add_months ( expresoe_şir ; expresie_întreg ) Exemplu: # _add_months ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2005-10-01 12:00:00.000000000-05:00 Exemplu: # _add_months ( $current_timestamp ; 1 ) # Rezultat: 2005-12-01 12:00:00.000000000-05:00 Exemplu: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Rezultat: 2005-12-01 Exemplu: # _add_months( '2019-11-14' ; -1 ) # Rezultat: 2019-10-14 Returnează amprenta de timp cu fus orar (ca şir) care rezultă din adăugarea "expresie_întreg" ani la "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. Când primul argument este o dată, specificat ca un şir cu formatul: yyyy-mm-dd, atunci valoarea returnată este un şir formatat ca o dată. _add_years ( expresoe_şir ; expresie_întreg ) Exemplu: # _add_years ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Rezultat: 2004-11-01 12:00:00.000000000-05:00 Exemplu: # _add_years ( $current_timestamp ; 1 ) # Rezultat: 2006-11-01 12:00:00.000000000-05:00 Exemplu: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Rezultat: 2006-11-01 Exemplu: # _add_years( '2019-11-14' ; -2 ) # Rezultat: 2017-11-14 _first_of_month ( expresie_şir ) Returnează amprenta de timp cu fus orar (ca şir) convertind valoarea zilei din "expresie_şir" în 1, unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. Exemplu: # _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Rezultat: 2005-11-01 12:00:00.000000000-05:00 Exemplu: # timestampMask ( _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyymmdd' ) # Rezultat: 20051101 _last_of_month ( expresie_şir ) Returnează amprenta de timp cu fus orar (ca şir) care este ultima zi din luna reprezentată de "expresie_şir", unde "expresie_şir" reprezintă o amprentă de timp cu fus orar. Exemplu: # _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Rezultat: 2005-11-30 12:00:00.000000000-05:00 Exemplu: # timestampMask ( _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyy-mm-dd' ) # Rezultat: 2005-11-30 modelj ( 'identificator' [ , 'cale_căutare_model' [ , 'opţiuni' ] ] ) Returnează o porţiune din modelul de metadate în format JSON. Modelul curent va fi folosit când nu este specificată 'cale_căutare_model'. Argumentul 'opţiuni' poate fi setat la 'cleanup', aceasta modifică unele părţi din rezultat la valori fixe (util pentru testare). sq ( modelj ( '[gosales].[country].[country]' ) Încadrează "expresie_şir" cu paranteze drepte. sb ( expresie_şir ) Exemplu: # sb ( 'abc' ) # Rezultat: [abc] Încadrează "expresie_şir" cu apostrofuri. sq ( expresie_şir ) Exemplu: # sq ( 'zero' ) # Rezultat: 'zero' Încadrează "expresie_şir" cu ghilimele. dq ( expresie_şir ) Exemplu: # dq ( 'zero' ) # Rezultat: "zero" Utilizează informaţiile de identitate ale utilizatorului autentificat actual pentru căutarea valorilor din harta parametri specificată. Fiecare element individual al identităţii utilizatorului (nume cont, nume grupuri, nume rol) este utilizat drept cheie în hartă. Lista unică a valorilor recuperată din harta parametrilor este returnată ca şir, unde fiecare valoare este încadrată de ghilimele simple şi unde valorile multiple sunt separate prin virgule. CSVIdentityName ( %parameter_map_name[ ; şir_separator ] ) Exemplu: # CSVIdentityName ( %security_clearance_level_map ) # Rezultat: 'nivel_500' , 'nivel_501' , 'nivel_700' Returnează elementele identităţii utilizatorului (nume cont, nume grupuri, nume rol) ca listă de şiruri. Lista unică a valorilor este returnată ca şir, unde fiecare valoare este între ghilimele simple şi unde valorile multiple sunt separate prin virgule. CSVIdentityNameList ( [ şir_separator ] ) Exemplu: # CSVIdentityNameList ( ) # Rezultat: 'Toţi', 'Administratori de rapoarte', 'Utilizatori de interogări' Returnează paşaportul Cognos® Access Manager. CAMPassport ( ) Exemplu: # CAMPassport ( ) # Rezultat: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Returnează piesele ID-ului utilizatorului Cognos® Access Manager ID (CAMID), cum ar fi numele de cont, numele grupului, sau numele rolurilor, ca şi sităa de valori separate prin virgule. CAMIDList ( [ şir_separator ] ) Exemplu: #CAMIDList ( ) # Rezultat: CAMID ( "::Oricare" ) ; CAMID ( ":Autori" ) ; CAMID ( ":Utilizatori interogare" ) ; CAMID ( ":Consumatori" ) ; CAMID ( ":Autori indici de măsurare" ) Returnează o matrice a ID-urilor utilizatorilor Cognos® Access Manager IDs (CAMIDs) bazată pe tipul identităţii (cont, grup sau rol). CAMIDListForType poate fi folosită cu funcţiile de macro csv sau join. CAMIDListForType ( tip identitate ) Exemplu: [qs].[userRole] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Rezultat: [qs].[userRole] in ( 'CAMID ( "::System Administrators" ) ' ; 'CAMID ( ":Autori" )' ) Concatenează două şiruri. valoare1 + valoare2 Exemplu: # '{ ' + $runLocale + ' }' # Rezultat: {en-us} Desparte caracterele de început din primul argument. Al doilea argumen opţional defineşte setul de caractere de despărţit. Implicit, această funcţie desparte spaţiile albe (adică spaţiu, tab, CR (carriage return) şi LF (line feed)). lstrip ( expresie_şir [ ; set_de_caractere ] ) Exemplu: # sq( lstrip ( ' abc ' ) ) # Rezultat: 'abc ' Exemplu: # lstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Rezultat: 53.2100 Returnează valoarea parametrului "parameterName", dacă este definită. Valoarea "defaultText" va fi returnată dacă nu există "parameterName". Când "datatype" este setat la "string", atunci valoarea rezultatului va fi între ghilimele simple. Utilizarea acestei funcţii nu va cauza o excepţie de parametru lipsă. ParamValue ( parameterName [ , defaultText [, datatype ] ] ) Exemplu: # ParamValue ( 'p_country' ) # Rezultat: 'Canada' - p_country este setat Rezultat: null - p_country nu este un parametru cunoscut Rezultat: null - p_country este utilizat într-un prompt opţional şi nu este setat Exemplu: # ParamValue ( 'p_country' , 'Netherlands' ) # Rezultat: 'Canada' - p_country este setat Rezultat: 'Netherlands' - p_country nu este un parametru cunoscut Rezultat: 'Netherlands' - p_country este utilizat într-un prompt opţional şi nu este setat Exemplu: # ParamValue ( 'p_country', ' cast ( null as varchar(20)) ' , 'token' ) # Rezultat: 'Canada' - p_country este setat Rezultat: cast ( null as varchar(20)) - p_country nu este un parametru cunoscut Rezultat: cast ( null as varchar(20)) - p_country este utilizat într-un prompt opţional şi nu este setat Utilizatorului i se solicită o singură valoare sau un singur membru. Este necesar numai "prompt_name". datatype este setat implicit la 'string' când nu este specificat. Promptul este opţional când se specifică "defaulText". "Text", dacă este specificat, precede valoarea. "QueryItem" poate fi specificat pentru a valorifica proprietăţile informaţiilor promptului pentru "queryItem". "Trailing_text", dacă este specificat, se va adăuga valorii la sfârşit. Când tipul de date este 'memberuniquename', este creat un prompt pentru selectarea unui simgur membru. Este o bună practică să furnizaţi o valoare implicită, ca al treilea argument. Valoarea implicită trebuie să fie un nume unic de mebru valid; poate fi şi un pseudonim care face referinţă la un nume unic de membru cum s-a făcut în Report Studio. prompt ( nume_prompt ; tipdedate ; textImplicit ; text ; queryItem ; trailing_text ) Exemplu: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > #prompt ( 'CodŢară de început' ; 'integer' ; '10' ) # Rezultat: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Exemplu: [gosales].[COUNTRY].[COUNTRY] = # prompt ( 'promptŢară' ; 'string' ; '''Canada''' ) # Result: [gosales].[COUNTRY].[COUNTRY] = 'Canada' Exemplu: set ( #prompt ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Rezultat: set([Sales].[Product].[Product].[Product line]->[all].[1]) Parametrul "defaultText" trebuie specificat astfel încât să fie literal valabil în contextul macroinstrucţiunii, deoarece nu are loc formatarea la această valoare. Şirul implicit '''Canada''' în exemplul 2 este specificat drept şir care utilizează ghilimele simple, în care ghilimelele simple încorporate sunt dublate, devenind astfel ghilimele triple. Aceasta duce la afişarea corectă a şirului în interiorul ghilimelelor simple din expresie. Ca regulă generală pentru tipul de date şir, "textImplicit" trebuie specificat întotdeauna în acest mod, cu excepţia contextului unui parametru de procedură stocată. Pentru "textImplicit" de tip 'date' sau 'datetime', trebuie folosit un format special în contextul SQL. Exemple de acest tip de formate sunt 'DATE ''2001-12-25''' şi 'DATETIME ''2001-12-25 12:00:00'''. În toate celelalte contexte, se foloseşte date/datetime fără cuvântul cheie şi ghilimele simple (de ex. '2001-12-25'). Utilizatorului i se solicită una sau mai multe valori sau membri. Este necesar numai "prompt_name". datatype este setat implicit la 'string' când nu este specificat. Promptul este opţional când se specifică "defaulText". "Text", dacă este specificat, precede valorile. "QueryItem" poate fi specificat pentru a valorifica proprietăţile informaţiilor promptului pentru "queryItem". "Text_final", dacă se specifică, se va adăuga listei valorilor. Când tipul de date este 'memberuniquename', este creat un prompt pentru selectarea mai multor membri. Este o bună practică să furnizaţi o valoare implicită, ca al treilea argument. Valoarea implicită trebuie să fie un nume unic de mebru valid; poate fi şi un pseudonim care face referinţă la un nume unic de membru cum s-a făcut în Report Studio. promptmany ( nume_prompt ; tipdate ; textImplicit ; text ; articolInterogare ; text_coadă ) Exemplu: select . . . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( 'NumeŢară' ) # ) Rezultat: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' ; 'The Netherlands' ; 'Russia' ) Exemplu: select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ; gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE # promptmany ( 'Selected CountryCodes' ; 'integer' ; ' ' ; ' and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( ' ; '' ; ' ) ' ) # Rezultat: select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ; gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' ; 'The Netherlands' ; 'Russia' ) Exemplu: set ( #promptmany ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Rezultat: set([Sales].[Product].[Product].[Product line]->[all].[1]; [Sales].[Product].[Product].[Product line]->[all].[2]) Executaţi o interogare pentru singură coloană şi returnaţi valoarea (numai) în (numai) primul rând. Rezultatul nu este formatat, asiguraţi-vă că înconjuraţi apelul cu paranteze ( ), după cum este necesar. queryValue ( value_expression [ , filter_expression ] ) Exemplu: # sq ( queryValue ( 'TheCalendar.TheWeekdayName' , 'TheCalendar.TheDate = 2018-06-06' ) ) # Rezultat: 'Wednesday' Construieşte o matrice din lista de parametri. array ( expresie_şir|expresie_array { ; expresie_şir|expresie_array } ) Exemplu: # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Rezultat: 'a1' , 'x1' , 'x2' , 'a2' Construieşte un şir din elementele matricei, în care valorile sunt separate prin virgule. Facultativ, se pot specifica şirurile separatorilor şi ale ghilimelelor. Separatorul implicit este o virgulă ( ; ) şi caracterul ghilimele implicit este un singur apostrof( ' ). csv ( expresie_matrice[ ; şir_separator[ ; şir_ghilimele ] ] ) Exemplu: # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Rezultat: 'a1' , 'a2' Obţineţi o intrare de la fişierul de configuraţie IBM® Cognos®. Fanionul_forţare_decodare este opţional şi trebuie să fie unul dintre: 'true' , '1', 1 , 'false', '0', 0. Valoarea implicită este 'false'. În cazuri excepţionale, force_decode_flag ar putea fi setat la true. Când force_decode_flag este setat la true, atunci, pentru intrările configurate în configuraţia IBM® Cognos® prin intermediul proprietăţilor Avansate, va fi returnată valoarea de text simplu a intrării de configuraţie. Pentru intrările care nu sunt identificate în proprietăţile Avansate este returnat ca şir gol, indiferent de prezenţa informaţiilor criptate. Intrarea în proprietăţile Avansate este qs.getConfigurationEntry.1 şi este o listă separată prin punct şi virgulă, implicit această listă de nume este goală şi apelurile la acea funcţie cu setarea de steguleţ la true vor returna un şir gol. getConfigurationEntry ( entry_string ; force_decode_flag ) Exemplu: # getConfigurationEntry ( 'serverLocale'  ) # Rezultat: en Returnează o intrare de la un fişier de resursă. Primul argument este ID-ul resursei găsit în fişierul de resurse. Al doilea argument opţional este numele fişierului de resurse fără sufixul pentru caracteristici locale (de ex. 'mfwa4j' pentru fişierul de mesaje 'mfwa4j_en.properties'). Fişierul de resurse implicit este 'xqejavamsgs'. Al treilea argument este pentru caracteristici locale, care implicit este 'en'. getResourceString ( şir id resursă [, şir fişier resurse [ , şir caracteristici locale ] ] ) Exemplu: # getResourceString ( 'XQE_BIN_binLow' ) # Rezultat: XQE-BIN-0001 mai mic decât %1 Exemplu: # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Rezultat: MFW-UT-1002 A apărut o eroare internă. Contactaţi administratorul de sistem. Caută şi returnează elementele unei matrici care corespund modelului specificat în "şir_model". Sunt suportate doar metacaracterele: ^ (la începutul cuvântului), $ (la sfârşitul cuvântului), ! (negaţie - suportat doar ca primul caracter). grep ( şir_model ; expresie_matrice ) Exemplul 1: # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Rezultat: 'as', 'arts' Exemplu: # sq ( csv ( grep ( '^g' , array ( 'group', 'golf' ) ) ) ) # Rezultat: 'group', 'golf' Exemplu: # sq ( csv ( grep ( 's$' , array ( 'oranges', 'mangoes' ) ) ) ) # Rezultat: 'oranges', 'mangoes' Exemplu: # sq ( csv ( grep ( '!o' , array ( 'oranges', 'apples' ) ) ) ) # Rezultat: 'apples' Găsiţi offset-ul în 'str' unde este găsit 'substr'. Este returnată valoarea -1 când nu este găsit 'substr'. Puteţi da un 'offset' opţional de unde să înceapă căutarea. Primul argument 'str' poate fi şi o expresie_matrice, caz în care funcţia se aplică la fiecare element al matricei şi rezultatul funcţiei este o matrice de valori. index ( str , substr [ , offset ] ) # index ( 'The black horse jumped over the black sheep.', 'black' ) # Rezultat: 4 # index ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Rezultat: 32 # index ( 'The black horse jumped over the black sheep.', 'green' ) # Rezultat: -1 # sq ( join ( ' | '; index ( array ('black' ; 'red'; 'green' ) ; 'e' ) ) ) # Rezultat: -1 | 1 | 2 Uneşte elementele unei matrici folosind "şir_separator". join ( şir_separator ; expresie_matrice ) Exemplu: # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Rezultat: 'as | | an | | arts' Calculează numărul de caractere din expresia_şir. Dacă argumentul este o expresie_matrice atunci rezultatul va fi o matrice de valori, fiecare intrare fiind numărul de caractere din fiecare din elementele expresiei_matrice. length ( expresie_şir | expresie_matrice ) length ( 'abcdef' ) Rezultat: 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Rezultat: 6--3 Găsiţi ultimul offset în 'str' unde este găsit 'substr'. Această funcţie este numită index invers, o puteţi vedea ca şi cum ar începe scanarea de la sfârşitul şirului. Este returnată valoarea -1 când nu este găsit 'substr'. Puteţi da un 'offset' opţional unde să se termine căutarea. Primul argument 'str' poate fi o expresie_matrice, caz în care funcţia se aplică la fiecare element al matricei şi rezultatul funcţiei este o matrice de valori. rindex ( str , substr [ , offset ] ) # rindex ( 'The black horse jumped over the black sheep.', 'black' ) # Rezultat: 32 # rindex ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Rezultat: 4 # rindex ( 'The black horse jumped over the black sheep.', 'green' ) # Rezultat: -1 # sq ( join ( ' | ', rindex ( array ('black' ; 'red'; 'green' ) ; 'e' ) ) ) # Rezultat: -1 | 1 | 3 Desparte caracterele de sfârşit din primul argument. Al doilea argumen opţional defineşte setul de caractere de despărţit. Implicit, această funcţie desparte spaţiile albe (adică spaţiu, tab, CR (carriage return) şi LF (line feed)). rstrip ( expresie_şir [ ; set_de_caractere ] ) Exemplu: # sq( rstrip ( ' abc ' ) ) # Rezultat: ' abc' Exemplu: # rstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Rezultat: 0053.21 Sortează elementele matricei în ordine alfabetică. Duplicatele sunt păstrate. sort ( expresie_matrice ) Exemplu: # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Rezultat: 'a', 's3', 'x' Divizează un şir sau elementele şir ale matricii în elemente separate. split ( şir_model; expresie_şir|expresie_matrice ) Exemplu: # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Rezultat: 'ab=c', 'de=f', 'gh=i' Exemplu: # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Rezultat: 'ab', 'c', 'de', 'f', 'gh', 'i' Desparte caracterele de început şi de sfârşit din primul argument. Al doilea argument opţional defineşte setul de caractere de despărţit. Implicit, această funcţie desparte spaţiile albe (adică spaţiu, tab, CR (carriage return) şi LF (line feed)). strip ( expresie_şir [ ; set_de_caractere ] ) Exemplu: # sq( strip ( ' abc ' ) ) # Rezultat: 'abc' Exemplu: # strip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Rezultat: 53.21 Caută un model într-un şir sau în elementele şir ale unei matrici şi înlocuieşte prima apariţie a "şir_model" cu "şir_înlocuire". Sunt suportate doar metacaracterele: ^ (la începutul cuvântului), $ (la sfârşitul cuvântului) substitute ( şir_model; şir_înlocuire; expresie_şir|expresie_array ) Exemplu: #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Rezultat: '***help' Exemplu: # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Rezultat: '***help', 'acn=5' Exemplu: # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Rezultat: 'help', 'a5' Exemplu: #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Rezultat: 'cn=***' Extrage o parte din 'expresia_şir' începând de la 'start_offset'. Puteţi specifica că vor fi extrase numărul de caractere 'lungime'. Dacă 'lungimea' nu este specificată sunt returnate caracterele până la sfârşitul expresiei_şir. Primul argument poate fi şi o expresie_matrice, caz în care funcţia se aplică la fiecare element al matricei şi rezultatul funcţiei este o matrice de şiruri. substr ( expresie_şir , start_offset [ , lungime ] ) substr ( 'The horse is black.', 0, 3 ) Rezultat: The substr ( 'The horse is black.', 4 ) Rezultat: horse is black. substr ( 'The horse is black', index ('The horse is black.' , 'green' ) ) Rezultat: The horse is black. join ( ' | ', substr ( array ('black' , 'red', 'green' ) , 2, 2 ) ) Rezultat: ac | d | en substr ('over the moon', -2, 4) Rezultă o eroare: Al doilea argument al funcţiei 'substr' trebuie să fie mai mare sau egal cu -1.' . Returnează "expresie1_şir", care reprezintă o amprentă de timp cu fus orar, ajustată la formatul specificat în "expresie2_şir". Formatul din "expresie2_şir" trebuie să fie unul din următoarele: 'aaaa', 'll', 'zz', 'aaaa-ll', 'aaaall', 'aaaa-ll-zz', 'aaaallzz', 'aaaa-ll-zz hh:mm:ss', 'aaaa-ll-zz hh:mm:ss+hh:mm', 'aaaa-ll-zz hh:mm:ss.ff3', 'aaaa-ll-zz hh:mm:ss.ff3+hh:mm', 'aaaa-ll-zzThh:mm:ss', 'aaaa-ll-zzThh:mm:ss+hh:mm', 'aaaa-ll-zzThh:mm:ss.ff3+hh:mm' sau 'aaaa-ll-zzThh:mm:ss.ff3+hh:mm'. Funciile de macrocomandă care returnează o reprezentare ca şir a unei amprente de timp cu fus orar are o precizie de 9 cifre pentru partea fracţionară a secundelor ca setare implicită. Opţiunile formatului permit reducerea până la o precizie de 3 sau 0. timestampMask ( expresie_şir ; expresie_şir ) Exemplu: # timestampMask ( $amprentă_timp_curentă ; 'yyyy-dd-mm' ) # Rezultat: 2005-11-01 Exemplu: # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # Rezultat: 2005-11-01 12:00:00-05:00 Exemplu: # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'yyyy-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm' ) # Rezultat: 2005-11-01T12:00:00.123-05:00 Returnează şirul care reprezintă o amprentă de timp cu fus orar care rezultă din ajustarea "expresie_şir" la fusul orar al sistemului de operare. Reţineţi că funcţia de macrocomandă timestampMask() poate fi utilizată pentru ajustarea ieşirii. toLocal ( exemplu_şir ) Exemplu: # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # unde fusul orar local al OS-ului este-05:00 Rezultat: 2005-11-01 12:00:00.000000000-05:00 Exemplu: # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # unde fusul orar local al OS-ului este -05:00 Rezultat: 2005-11-01 12:00:00-05:00 Exemplu: # toLocal ( '2005-11-01 13:30:00.000-03:30' ) # unde fusul orar local al OS-ului este-05:00 Rezultat: 2005-11-01 12:00:00.000000000-05:00 Returnează şirul "expresie_şir" cu toate caracterele convertite la litere mici folosind regulile caracteristicii locale "locale_string". Dacă nu este specificată nicio o caracteristică locală (locale), este folosit 'en'. tolower ( expresie_şir [ ; şir_locale ] ) Exemplu: # tolower ( 'ABC' ) # Rezultat: abc Exemplu: # tolower ( 'ABC' ; 'fr' ) # Rezultat: abc Returnează şirul "expresie_şir" cu toate caracterele convertite la litere mari folosind regulile caracteristicii locale "locale_string". Dacă nu este specificată nicio o caracteristică locală (locale), este folosit 'en'. toupper ( expresie_şir [ ; şir_locale ] ) Exemplu: # toupper ( 'abc' ) # Rezultat: ABC Exemplu: # toupper ( 'abc' ; 'fr' ) # Rezultat: ABC Returnează reprezentarea ca şir a unei amprente de timp cu fus orar care rezultă din ajustarea "expresie_şir" la fusul orar UTC al punctului de referinţă zero, cunoscut şi ca ora GMT. Reţineţi că funcţia de macrocomandă timestampMask() poate fi utilizată pentru ajustarea ieşirii. toUTC ( expresie_şir ) Exemplu: # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Rezultat: 2005-11-01 17:00:00.000000000-00:00 Exemplu: # timestampMask( toUTC ( '2005-11-01 12:00:00.000-05:00' ) ; 'yyyy-mm-dd hh:mm:ss.ff3+hh:mm' ) # Rezultat: 2005-11-01 17:00:000.000-00:00 Exemplu: # toUTC ( $amprentă_timp_curentă ) # Rezultat: 2005-11-01 17:00:00.000000000-00:00 Elimină intrările duplicate din matrice. Ordinea elementelor se păstrează. unique ( expresie_matrice ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Rezultat: 's3', 'a', 'x' Adresa URL codifică argumentul transmis. Această funcţie este utilă pentru specificarea şirurilor de conexiune XML. urlencode ( prompt ( 'userValue' ) ) urlencode ( prompt ( 'some_val' ) ) %27testValue%27 case simplu Acest macro este şablonul pentru un case simplu, incluzând funcţiile case, when, then, else şi end. Notaţi că această construcţie de macro este suportată doar în modul DQM. CASE <expresie> WHEN <literal> THEN <expresie> [ELSE <expresie>] END Exemplu: #CASE prompt('pDateRange';'token') WHEN 'Current Week' THEN '[PR Current Week]' ELSE '[PR Prior Week]' END# Rezultat: [PR Current Week]
Funcţii de bloc Această listă conţine funcţiile utilizate pentru a accesa membrii unui set, de obicei în contextul Analysis Studio. Returnează primii membri găsiţi în set până la "expresie_numerică_maxim" + "expresie_numerică_depăşire". Dacă se depăşeşte "expresie_numerică_maxim" + "expresie_numerică_depăşire", se returnează numai numărul maxim de membri. Pentru un set care are doar câţiva membri în plus faţă de expresie_numerică_maxim, expresie_numerică_depăşire permite includerea setului redus de membri suplimentari. Dacă setul are mai mulţi membri decât permite depăşirea, atunci se va returna doar expresie_numerică_maxim membri. _firstFromSet ( setare_expresie ; maxim_expresie_numerică ; depăşire_expresie_numerică ) _firstFromSet ( [great_outdoors_company].[Products].[Products].[Product line] ; 2 ; 8 ) Rezultat: returnează cei cinci membri din setul Linie de produse. Primii doi membri sunt returnaţi în cadrul maximului şi următorii trei membri sunt returnaţi ca depăşire. Echipament de camping Echipament de golf Echipament de alpinism Articole de protecţie pentru exterior Accesorii personale _firstFromSet ( [great_outdoors_company].[Products].[Products].[Product line] ; 2 ; 2 ) Rezultat: Echipament de camping, Echipament de golf Returnează setul care conţine "expresie_membru" când dimensiunea "expresiei_set" este mai mare decât "expresie_numerică"; adică un nou membru va fi generat dacă numărul de membri din "expresie_set" este mai mare decât "expresia_numerică" specificată. _remainderSet ( expresie_membru; setare_expresie ; expresie_numerică ) _remainderSet ( member ( aggregate ( currentMeasure within set [great_outdoors_company].[Products].[Products].[Product line] ) ; 'Product Aggregate' ; 'Product Aggregate' ; [great_outdoors_company].[Products].[Products] ) ; [great_outdoors_company].[Products].[Products].[Product line] ; 1 ) Rezultat: Cantitatea vândută pentru Agregat produse