Funkce závislé na dodavatelích Konstanty Konstanta je pevná hodnota, kterou můžete použít ve výrazu. Operátory Operátory určují, co se stane s hodnotami na obou stranách operátoru. Operátory jsou podobné funkcím v tom, že manipulují s datovými položkami a vrací výsledek. datum Vkládá aktuální datum systému. date-time Vkládá aktuální datum a čas systému. time with time zone Vkládá nulový čas s časovým pásmem. timestamp with time zone Vkládá příklad časového razítka s časovým pásmem. Vkládá nepravdivou hodnotu. interval Vkládá nulový interval: 000 00:00:00.000. interval year Vkládá nulový roční interval: 0 year. interval month Vkládá nulový měsíční interval: 0 month. interval year to month Vkládá nulový roční až měsíční interval: 0000-00 year to month. interval day Vkládá nulový denní interval: 0 day. interval hour Vkládá nulový hodinový interval: 0 hour. interval minute Vkládá nulový minutový interval: 0 minute. interval second Vkládá nulový sekundový interval: 0 second. interval day to hour Vkládá nulový denní až hodinový interval: 0 00 day to hour. interval day to minute Vkládá nulový denní až minutový interval: 0 00:00 day to minute. interval day to second Vkládá nulový denní až sekundový interval: 0 00:00:00.000000000 day to second. interval hour to minute Vkládá nulový hodinový až minutový interval: 00:00 hour to minute. interval hour to second Vkládá nulový hodinový až sekundový interval: 00:00:00.000000000 hour to second. interval minute to second Vkládá nulový minutový až sekundový interval: 00:00.000000000 minute to second. Vkládá "null", pokud nejsou splněny podmínky výrazu. číslo Vkládá číslo 0, které je možné nahradit novou číselnou hodnotou. řetězec Vkládá prázdný řetězec jako dvě jednoduché uvozovky, mezi které lze zadat řetězec. čas Vkládá aktuální čas systému. Vkládá pravdivou hodnotu.
Identifikuje začátek výrazu. ( výraz ) Identifikuje konec výrazu. ( výraz ) Vynásobí dvě číselné hodnoty. hodnota1 * hodnota2 , Odděluje jednotlivé složky výrazu. výraz ( parametr1; parametr2 ) Vydělí dvě číselné hodnoty. hodnota1 / hodnota2 Zřetězí (spojí) dva řetězce. řetězec1 || řetězec2 Sečte dvě číselné hodnoty. hodnota1 + hodnota2 Odečte dvě číselné hodnoty nebo neguje číselnou hodnotu. hodnota1 - hodnota2 nebo - hodnota Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které jsou menší než "hodnota2". hodnota1 < hodnota2 Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které jsou menší nebo rovné "hodnotě2". hodnota1 <= hodnota2 Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které nejsou rovny "hodnotě2". hodnota1 <> hodnota2 Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které jsou rovny "hodnotě2". hodnota1 = hodnota2 Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které jsou větší než "hodnota2". hodnota1 > hodnota2 Odděluje jednotlivé složky ve výrazu s literálovými členy. [prostor jmen].[dimenze].[hierarchie].[úroveň]->[L1] Porovná hodnoty reprezentované "hodnotou1" vůči "hodnotě2" a načte hodnoty, které jsou větší nebo rovné "hodnotě2". hodnota1 >= hodnota2 Vrací hodnotu "true", jsou-li podmínky na obou stranách výrazu pravdivé. argument1 and argument2 Pracuje se souhrnnými výrazy a definuje rozsah, který má být upraven, na základě sloupců seskupení v dotazu. Rozsah je závislý na kontextu. agregační_funkce ( výraz AUTO ) Určuje, zda hodnota spadá do daného rozsahu. výraz between hodnota1 and hodnota2 Příklad: [Výnos] between 200 and 300 Výsledek: Vrací počet výsledků s výnosem mezi 200 a 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Pracuje s konstrukcemi when, then, else a end. Case určuje počátek konkrétní situace, ve které jsou definovány akce when, then a else. case výraz { when výraz then výraz } [ else výraz ] end Určuje, zda "řetězec1" obsahuje "řetězec2". Syntaxe podporuje oba metaznaky: znak procento (%) zastupuje žádný, jeden nebo více znaků a znak podtržítko (_) zastupuje nějaký znak. Volitelné klíčové slovo LITERAL značí způsob interpretace znaků '%' a '_'. Je-li přítomno klíčové slovo LITERAL, znaky '%' a '_' se nepovažují za metaznaky (viz příklady 3 a 5). Pokud se klíčové slovo LITERAL nevyskytuje, považují se znaky %' a '_' za metaznaky (viz příklady 1, 2 a 4). řetězec1 contains [LITERAL] řetězec2 Příklad 1: [PRODUCT_LINE] contains 'bor' Výsledek 1: Tábornické vybavení Příklad 2: [PRODUCT_LINE] contains 'Golf%' Výsledek 2: Golfové vybavení Příklad 3: [PRODUCT_LINE] contains literal 'Golf%' Výsledek 3: Golf% Příklad 4: [PRODUCT_LINE] contains 'Aktuální_den%' Výsledek 4: Aktuální denní cena, Aktuální denní cena%, Aktuální_denní cena%. Příklad 5: [PRODUCT_LINE] contains literal 'Aktuální_den%' Výsledek 5: Aktuální_den%. Klíčové slovo, které lze použít jako první argument funkcí souhrnu členů. Tato funkce je použita ve vzorové sestavě Celkový výnos podle země v balíku Datový sklad GO (dotaz). agregační_funkce ( currentMeasure within set výraz ) current_date Vrací aktuální datum databáze. current_date Pracuje se syntaxí příkazu lookup. lookup (....) in (....) default (....) Klíčové slovo používané ve výrazu agregace pro zahrnutí pouze unikátních výskytů hodnot. Viz také funkce unique. distinct dataItem Příklad: count ( distinct [OrderDetailQuantity] ) Výsledek: 1704 Pracuje se syntaxemi příkazu if nebo case. Jsou-li podmínka if nebo výraz case nepravdivé, používá se výraz else. Tato funkce je použita ve vzorové sestavě Nejlepších 10 prodejců v roce 2005 v balíku Datový sklad GO (analýza). if ( podmínka ) then .... else ( výraz ) ; nebo case .... else ( výraz ) end Označuje konec syntaxe příkazu case nebo when. case .... end Určuje, zda "řetězec1" končí na "řetězec2". Syntaxe podporuje oba metaznaky: znak procento (%) zastupuje žádný, jeden nebo více znaků a znak podtržítko (_) zastupuje nějaký znak. Volitelné klíčové slovo LITERAL značí způsob interpretace znaků '%' a '_'. Je-li přítomno klíčové slovo LITERAL, znaky '%' a '_' se nepovažují za metaznaky (viz příklady 3 a 5). Pokud se klíčové slovo LITERAL nevyskytuje, považují se znaky %' a '_' za metaznaky (viz příklady 1, 2 a 4). řetězec1 ends with [LITERAL] řetězec2 Příklad 1: [PRODUCT_LINE] ends with 'vybavení' Výsledek 1: Tábornické vybavení, Golfové vybavení Příklad 2: [PRODUCT_LINE] ends with '%vybavení' Výsledek 2: Golfové vybavení, Tábornické vybavení Příklad 3: [PRODUCT_LINE] ends with literal 'Vybavení%' Výsledek 3: Vybavení% Příklad 4: [PRODUCT_LINE] ends with '%cena' Výsledek 4: Jednotková cena, Aktuální_roční cena Příklad 5: [PRODUCT_LINE] ends with literal '%Cena' Výsledek 5: %Cena Určuje, zda "řetězec1" odpovídá vzoru "řetězec2", s nepovinným znakem "znak" pro změnu významu v řetězci vzoru. řetězec1 LIKE řetězec2 [ ESCAPE znak ] Příklad: [PRODUCT_LINE] like 'G%' Výsledek: Všechny produktové řady začínající písmenem 'G'. Příklad: [PRODUCT_LINE] like '%Ga%' escape 'a' Výsledek: Všechny produktové řady končící písmeny 'G%'. Pracuje se souhrnnými výrazy pro definování rozsahu agregace ve výrazu. agregační_funkce ( výraz for výraz { ; výraz } ) Pracuje se souhrnnými výrazy a definuje rozsah, který má být upraven, na základě dílčí sady sloupců seskupení v dotazu. Jde o ekvivalent klauzule for. agregační_funkce ( výraz for ANY výraz { ; výraz } ) Pracuje se souhrnnými výrazy a definuje rozsah jako všechny uvedené sloupce seskupení v dotazu. Viz také klauzule for. agregační_funkce ( výraz for ALL výraz { ; výraz } ) Pracuje se souhrnnými výrazy a nastavuje rozsah na celý dotaz. Viz také klauzule for. Tato funkce je použita ve vzorové sestavě Vrácené zboží a spokojenost zákazníků v balíku Datový sklad GO (analýza). agregační_funkce ( výraz for report ) Pracuje se syntaxemi příkazu then a else. If definuje podmínku; když je podmínka if pravdivá, použije se výraz then. Když podmínka if pravdivá není, použije se výraz else. Tato funkce je použita ve vzorové sestavě Nejlepších 10 prodejců v roce 2005 v balíku Datový sklad GO (analýza). if ( podmínka ) then ( výraz ) else ( výraz ) Určuje, zda "výraz1" existuje v daném seznamu výrazů. expression1 in ( seznam_výrazů ) Určuje, zda "výraz1" existuje v daném seznamu konstantních hodnot nebo rozsahů. expression1 in_range { konstanta : konstanta [ ; konstanta : konstanta ] } Příklad: [kód] in_range { 5 } Výsledek: Jde o ekvivalent pro [kód] = 5. Příklad: [kód] in_range { 5: } Výsledek: Jde o ekvivalent pro [kód] >= 5. Příklad: [kód] in_range { :5 } Výsledek: Jde o ekvivalent pro [kód] <= 5. Příklad: [kód] in_range { 5:10 } Výsledek: Jde o ekvivalent pro ( [kód] >= 5 a [kód] <= 10 ) Příklad: [kód] in_range { :5;10;20: } Výsledek: Jde o ekvivalent pro ( [kód] <= 5 nebo [kód] = 10 nebo [kód] >= 20 ). Určuje, zda je "hodnota" v datech nedefinovaná. hodnota is missing Určuje, zda je "hodnota" v datech nedefinovaná. hodnota is null Určuje, zda je "hodnota" v datech definovaná. hodnota is not missing Určuje, zda je "hodnota" v datech definovaná. hodnota is not null Určuje, zda "řetězec1" odpovídá vzoru "řetězec2", s nepovinným znakem "znak" pro změnu významu v řetězci vzoru. Syntaxe podporuje oba metaznaky: znak procento (%) zastupuje žádný, jeden nebo více znaků a znak podtržítko (_) zastupuje nějaký znak. řetězec1 LIKE řetězec2 [ ESCAPE znak ] Příklad 1: [PRODUCT_LINE] like 'G%' Výsledek 1: Všechny produktové řady začínající písmenem G. Příklad 2: [PRODUCT_LINE] like '%Ga%' escape 'a' Výsledek 2: Všechny produktové řady končící řetězcem "G%". Příklad 3: [PRODUCT_LINE] like 'K_I__' Výsledek 3: Všechny produktové řady s názvem KNIHA nebo KLIPY. Příklad: lookup ( [Country]) in ( 'Canada'--> ( [List Price] * 0.60); 'Australia'--> ( [List Price] * 0.80 ) ) default ( [List Price] ) Vyhledá a nahradí data vámi zadanou hodnotou. Tato syntaxe příkazu je upřednostňovaná před syntaxí příkazu case. lookup ( název ) in ( hodnota1 --> hodnota2 ) default ( výraz ) Vrací TRUE, je-li "argument" nepravdivý, nebo vrací FALSE, je-li "argument" pravdivý. NOT argument Vrací TRUE, je-li "argument1" nebo "argument2" pravdivý. argument1 or argument2 Provádí výpočet souhrnu před použitím filtru souhrnu. funkce_souhrnu ([funkce] prefilter) Příklad: total ( [Quantity] for report prefilter ) summaryFilter: total( [Quantity] for [ProductNo] ) > 50000 Výsledek: Součet množství v sestavě před použitím filtru souhrnu. 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 Spočítá počet řádků, které tvoří výstup dotazu. Použijte s konstrukcí Count (). count ( ROWS ) Spočítá počet řádků, které tvoří výstup dotazu. Použijte s konstrukcí Count (). count ( ROWS  [ výraz ]) Určuje, zda "řetězec1" začíná na "řetězec2". Syntaxe podporuje oba metaznaky: znak procento (%) zastupuje žádný, jeden nebo více znaků a znak podtržítko (_) zastupuje nějaký znak. Volitelné klíčové slovo LITERAL značí způsob interpretace znaků '%' a '_'. Je-li přítomno klíčové slovo LITERAL, znaky '%' a '_' se nepovažují za metaznaky (viz příklady 3 a 5). Pokud se klíčové slovo LITERAL nevyskytuje, považují se znaky %' a '_' za metaznaky (viz příklady 1, 2 a 4). řetězec1 starts with [LITERAL] řetězec2 Příklad 1: [PRODUCT_LINE] starts with 'Golf' Výsledek 1: Golfové vybavení Příklad 2: [PRODUCT_LINE] starts with 'Tábornické%' Výsledek 2: Tábornické vybavení Příklad 3: [PRODUCT_LINE] starts with literal 'Golf%' Výsledek 3: Golf% Příklad 4: [PRODUCT_LINE] starts with 'Aktuální_den%' Výsledek 4: Aktuální denní cena, Aktuální denní cena%, Aktuální_denní cena%. Příklad 5: [PRODUCT_LINE] starts with literal 'Aktuální_den%' Výsledek 5: Aktuální_den%. Pracuje se syntaxemi příkazu if nebo case. Jsou-li podmínka if nebo výraz when pravdivé, použije se výraz. Tato funkce je použita ve vzorové sestavě Nejlepších 10 prodejců v roce 2005 v balíku Datový sklad GO (analýza). if ( podmínka ) then ..., nebo case výraz when výraz then .... end Pracuje se syntaxí příkazu case. Můžete definovat výskyt podmínek, když je výraz WHEN pravdivý. case [výraz] when ... end
Souhrny Tento seznam obsahuje předdefinované funkce, které vrací buď jednu souhrnnou hodnotu pro celou skupinu souvisejících hodnot, nebo různé souhrnné hodnoty pro jednotlivé instance skupiny souvisejících hodnot. Vrací hodnotu vypočtenou pomocí odpovídající agregační funkce na základě typu agregace daného výrazu. Tato funkce je použita ve vzorové sestavě Rozpočet a skutečné hodnoty v balíku Datový sklad GO (analýza). aggregate ( výraz [ auto ] ) aggregate ( výraz for [ all|any ] výraz { ; výraz } ) aggregate ( výraz for report ) Vrací průměrnou hodnotu vybraných datových položek. Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. average ( [ distinct ] výraz [ auto ] ) average ( [ distinct ] výraz for [ all|any ] výraz { ; výraz } ) average ( [ distinct ] výraz for report ) Příklad: average ( Sales ) Výsledek: Vrací průměr všech hodnot prodejů. Vrací počet vybraných datových položek (kromě hodnot null). Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. Vše je podporováno pouze v režimu DQM a vyhýbá se předpokladu dvojitého počítání datové položky v tabulce dimenze. count ( [ all | distinct ] výraz [ auto ] ) count ( [ all | distinct ] výraz for [ all|any ] výraz { ; výraz } ) count ( [ all | distinct ] výraz for report ) Příklad: count ( Sales ) Výsledek: Vrací celkový počet položek pod prodeji. Vrací maximální hodnotu vybraných datových položek. Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. maximum ( [ distinct ] výraz [ auto ] ) maximum ( [ distinct ] výraz for [ all|any ] výraz { ; výraz } ) maximum ( [ distinct ] výraz for report ) Příklad: maximum ( Sales ) Výsledek: Vrací maximální hodnotu ze všech hodnot prodejů. Vrací hodnotu mediánu vybraných datových položek. median ( výraz [ auto ] ) median ( výraz for [ all|any ] výraz { ; výraz } ) median ( výraz for report ) Vrací minimální hodnotu vybraných datových položek. Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. minimum ( [ distinct ] výraz [ auto ] ) minimum ( [ distinct ] výraz for [ all|any ] výraz { ; výraz } ) minimum ( [ distinct ] výraz for report ) Příklad: minimum ( Sales ) Výsledek: Vrací minimální hodnotu ze všech hodnot prodejů. Vrací klouzavý průměr po řádcích pro stanovenou sadu hodnot ze stanoveného počtu řádků. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. moving-average ( číselný_výraz ; číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) moving-average (  číselný_výraz ; číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: moving-average ( Qty ; 3 ) Výsledek: Pro každý řádek vrací množství a klouzavý průměr aktuálního řádku a předešlých dvou řádků. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Vrací klouzavý úhrn po řádcích pro stanovenou sadu hodnot ze stanoveného počtu řádků. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. moving-total ( číselný_výraz ; číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) moving-total (  číselný_výraz ; číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: moving-total ( Qty ; 3 ) Výsledek: Pro každý řádek vrací množství a klouzavý součet aktuálního řádku a předešlých dvou řádků. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Vrací procentní podíl z celkové hodnoty pro vybrané datové položky. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. Tato funkce je použita v interaktivní vzorové sestavě Procentní výpočet (podle roku). percentage ( číselný_výraz [ at výraz  { ; výraz } ] [ <volba-for> ] [ prefilter ] ) percentage (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: percentage ( Sales 98 ) Výsledek: Vrací procentní podíl celkových prodejů za rok 1998 připisované jednotlivým obchodním zástupcům. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Vrací hodnotu, na stupnici do jednoho sta, která udává procentní hodnotu rozdělení, které je menší nebo rovno vybraným datovým položkám. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. percentile ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) percentile (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: percentile ( Sales 98 ) Výsledek: Pro každý řádek vrací procentní podíl řádků, které jsou menší nebo rovny hodnotě množství na daném řádku. 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 Vrací očíslování pořadí hodnoty v rámci určeného rozsahu. Vrací celá čísla, která představují libovolný rozsah očíslování pořadí, např. 1 (nejvyšší) až 100 (nejnižší). Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. quantile ( číselný_výraz ; číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) quantile (  číselný_výraz ; číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: quantile ( Qty ; 4 ) Výsledek: Vrací množství, očíslování pořadí hodnoty kvantilu a hodnoty množství rozepsané do 4 kvantilových skupin (kvartilů). 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 Vrací očíslování pořadí hodnoty, představovanou celými čísly od 1 (nejvyšší) do 4 (nejnižší), ve vztahu ke skupině hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. quartile ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) quartile (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: quartile ( Qty ) Výsledek: Vrací množství a kvartil hodnoty množství představovaný celými čísly od 1 (nejvyšší) do 4 (nejnižší). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Vrací hodnotu očíslování pořadí vybraných datových položek. Pořadí třídění je volitelné; standardně se předpokládá sestupné pořadí (DESC). Pokud mají dva či více řádků nerozhodné hodnoty, bude v posloupnosti hodnot očíslování pořadí (tzv. olympijské očíslování pořadí) mezera. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. Hodnoty Null jsou umístěny na posledním stupni očíslování pořadí. Tato funkce je použita ve vzorové sestavě Nejlepších 10 prodejců v roce 2005 v balíku Datový sklad GO (analýza). rank ( výraz [ ASC|DESC ] { ; výraz [ ASC|DESC ] } [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) rank ( [ distinct ] výraz [ ASC|DESC ] { ; výraz [ ASC|DESC ] } [ <volba-for>] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: rank ( Sales 98 ) Výsledek: Pro každý řádek vrací hodnotu očíslování pořadí prodejů pro rok 1998 připisovanou každému obchodnímu zástupci. Některá čísla jsou přeskočena, když dojde k nerozhodnému výsledku mezi řádky. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Vrací klouzavý průměr podle řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-average ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-average (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-average ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavý průměr aktuálního řádku a předešlých řádků. 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 Vrací klouzavý počet podle řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-count ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-count (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-count ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavý počet pozice aktuálního řádku. 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 Vrací klouzavý rozdíl podle řádku, vypočítaný jako rozdíl mezi hodnotou aktuálního řádku a předchozího řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-difference ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-difference (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-difference ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavý rozdíl mezi hodnotou aktuálního řádku a předchozího řádku. Name Qty Running-Difference for name ------- ------ --------------------------- Smith 7 NULL Smith 3 -4 Smith 6 3 Smith 4 -2 Wong 3 -1 Wong 5 2 Vrací klouzavé maximum podle řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-maximum (  číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-maximum (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-maximum ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavé maximum aktuálního řádku a předešlých řádků. 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 Vrací klouzavé minimum podle řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-minimum ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-minimum (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-minimum ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavé minimum aktuálního řádku a předešlých řádků. 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 Vrací mezisoučet podle řádku (včetně aktuálního řádku) pro sadu hodnot. Volba "<volba-for>" definuje rozsah funkce. Volba "at" definuje úroveň agregace a lze ji použít pouze v kontextu relačních zdrojů dat. running-total ( číselný_výraz [ at výraz { ; výraz } ] [ <volba-for> ] [ prefilter ] ) running-total (  číselný_výraz [ <volba-for> ] [ prefilter ] ) <volba-for> ::= for výraz { ; výraz }|for report|auto Příklad: running-total ( Qty ) Výsledek: Pro každý řádek vrací množství a klouzavý součet aktuálního řádku a předešlých řádků. 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 Vrací směrodatnou odchylku vybraných datových položek. standard-deviation (  výraz [ auto ] ) standard-deviation (  výraz for [ all|any ] výraz { ; výraz } ) standard-deviation (  výraz for report ) Příklad: standard-deviation ( ProductCost ) Výsledek: Vrací hodnotu udávající odchylku mezi náklady na produkt a průměrnými náklady na produkt. Vypočítá směrodatnou odchylku populace a vrací druhou odmocninu rozptylu populace. standard-deviation-pop (  výraz [ auto ] ) standard-deviation-pop (  výraz for [ all|any ] výraz { ; výraz } ) standard-deviation-pop (  výraz for report ) Příklad: standard-deviation-pop ( ProductCost ) Výsledek: Vrací hodnotu druhé odmocniny rozptylu populace. Vypočítá směrodatnou odchylku vzorku a vrací druhou odmocninu rozptylu populace. standard-deviation-samp (  výraz [ auto ] ) standard-deviation-samp (  výraz for [ all|any ] výraz { ; výraz } ) standard-deviation-samp (  výraz for report ) Příklad: standard-deviation-samp ( ProductCost ) Výsledek: Vrací hodnotu druhé odmocniny rozptylu vzorku. Vrací očíslování pořadí hodnoty jako vysoký (High), střední (Middle), nebo nízký (Low) ve vztahu ke skupině hodnot. tertile (  výraz [ auto ] ) tertile (  výraz for [ all|any ] výraz { ; výraz } ) tertile (  výraz for report ) Příklad: tertile ( Qty ) Výsledek: Vrací množství, kvantil hodnoty množství rozložené na tercily a hodnoty množství rozložené na tercily. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Vrací celkovou hodnotu vybraných datových položek. Distinct je alternativní výraz, který je kompatibilní s předchozími verzemi produktu. Tato funkce je použita ve vzorové sestavě Rozpočet a skutečné hodnoty v balíku Datový sklad GO (analýza). total ( [ distinct ] výraz [ auto ] ) total ( [ distinct ] výraz for [ all|any ] výraz { ; výraz } ) total ( [ distinct ] výraz for report ) Příklad: total ( Sales ) Výsledek: Vrací celkovou hodnotu všech hodnot prodejů. Statistické funkce Tento seznam obsahuje předdefinované funkce souhrnu statistické povahy. Vrací rozptyl vybraných datových položek. variance (  výraz [ auto ] ) variance (  výraz for [ all|any ] výraz { ; výraz } ) variance (  výraz for report ) Příklad: variance ( Product Cost ) Výsledek: Vrací hodnotu udávající, jak široce se náklady na produkt liší od průměrných nákladů na produkt. Vrací rozptyl populace sady čísel po vyřazení hodnot null z této sady. variance-pop (  výraz [ auto ] ) variance-pop (  výraz for [ all|any ] výraz { ; výraz } ) variance-pop (  výraz for report ) Příklad: variance-pop ( Qty ) Výsledek: Pro každý řádek vrací rozptyl populace sady čísel po vyřazení hodnot null z této sady. Vrací rozptyl vzorku sady čísel po vyřazení hodnot null z této sady. variance-samp (  výraz [ auto ] ) variance-samp (  výraz for [ all|any ] výraz { ; výraz } ) variance-samp (  výraz for report ) Příklad: variance-samp ( Qty ) Výsledek: Pro každý řádek vrací rozptyl vzorku sady čísel po vyřazení hodnot null z této sady. corr ( číselný_výraz1 ;  číselný_výraz2  [ auto ] ) corr ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) corr ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí koeficient korelace sady číselných dvojic. Výpočet probíhá takto: COVAR_POP(číselný_výraz1; číselný_výraz2) / (STDDEV_POP(číselný_výraz1) * STDDEV_POP(číselný_výraz2)) Příklad: corr ( Cost ;  Margin  for report) Výsledek: Koeficient korelace mezi Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) covariance-pop ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) covariance-pop ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí populační kovarianci sady číselných dvojic. Příklad: covariance-pop ( Cost ;  Margin  for report) Výsledek: Populační kovariance mezi hodnotami Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) covariance-samp ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) covariance-samp ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí kovarianci ukázek sady číselných dvojic. Příklad: covariance-samp ( Cost ;  Margin  for report) Výsledek: Kovariance ukázek mezi hodnotami Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-average-x ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-average-x ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí průměr nezávislé proměnné (číselný_výraz2) regresní čáry. Příklad: regression-average-x ( Cost ;  Margin  for report) Výsledek: Průměr hodnoty Margin v rámci regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-average-y ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-average-y ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí průměr závislé proměnné (číselný_výraz1) regresní čáry. Příklad: regression-average-y ( Cost ;  Margin  for report) Výsledek: Průměr hodnoty Cost v rámci regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-count ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-count ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí počet nenulových čísel použitých k vytvoření regresní čáry. Příklad: regression-count ( Cost ;  Margin  for report) Výsledek: Počet nenulových čísel použitých k vytvoření regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-intercept ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-intercept ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí průsečík regresní čáry s osou y. Výpočet probíhá takto: AVG(číselný_výraz1) - REGR_SLOPE(číselný_výraz1; číselný_výraz2) * AVG(číselný_výraz2) Příklad: regression-intercept ( Cost ;  Margin  for report) Výsledek: Průsečík regresní čáry pro hodnoty Cost a Margin s osou y. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-r2 ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-r2 ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí determinační koeficient (označovaný též jako "druhá mocnina R") regresní čáry. Hodnota je vypočtena na základě následujících podmínek: IF VAR_POP(číselný_výraz2) = 0 THEN NULL IF VAR_POP(číselný_výraz1) = 0 AND VAR_POP(číselný_výraz2) <> 0 THEN 1 IF VAR_POP(číselný_výraz1) > 0 and VAR_POP(číselný_výraz2) <> 0 THEN POWER(CORR (číselný_výraz1; číselný_výraz2)) Příklad: regression-r2 ( Cost ;  Margin  for report) Výsledek: Determinační koeficient regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-slope ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-slope ( číselný_výraz1 ;  číselný_výraz2 for report ) Vrátí směrnici regresní čáry. Výpočet probíhá takto: COVAR_POP(číselný_výraz1;číselný_výraz2) / VAR_POP(číselný_výraz2) Příklad: regression-slope ( Cost ;  Margin ) Výsledek: Směrnice regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-sxx ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-sxx ( číselný_výraz1 ;  číselný_výraz2 for report ) Po odstranění dvojic s hodnotou NULL vrátí následující výpočet: REGR_COUNT(číselný_výraz1; číselný_výraz2) * VAR_POP(číselný_výraz2) Příklad: regression-sxx ( Cost ;  Margin  for report) Výsledek: Výpočet sxx regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-sxy ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-sxy ( číselný_výraz1 ;  číselný_výraz2 for report ) Po odstranění dvojic s hodnotou NULL vrátí následující výpočet: REGR_COUNT(číselný-výraz1; číselný_výraz2) * COVAR_POP(číselný_výraz1; číselný_výraz2) Příklad: regression-sxy ( Cost ;  Margin  for report) Výsledek: Výpočet sxy regresní čáry pro hodnoty Cost a Margin. 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 ( číselný_výraz1 ;  číselný_výraz2 ) regression-syy ( číselný_výraz1 ;  číselný_výraz2 for [ all|any ] výraz { ; výraz } ) regression-syy ( číselný_výraz1 ;  číselný_výraz2 for report ) Po odstranění dvojic s hodnotou NULL vrátí následující výpočet: REGR_COUNT(číselný_výraz1; číselný_výraz2) * VAR_POP(číselný_výraz1) Příklad: regression-syy ( Cost ;  Margin  for report) Výsledek: Výpočet syy regresní čáry pro hodnoty Cost a Margin. 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 Souhrny členů Tento seznam obsahuje předdefinované funkce, které vrací buď jednu souhrnnou hodnotu pro celou sadu členů, nebo různé souhrnné hodnoty pro jednotlivé členy v sadě členů.
Chyba Ve vašem výrazu je chyba na pozici zvýrazněného tokenu.
Syntaxe příkazu Tento seznam obsahuje syntaxe příkazu a šablony, které lze použít při tvorbě výrazu. Šablony kombinují více funkcí do skupiny. Např. šablona pro hledání případů obsahuje funkce case, when, else a end. search case Tato syntaxe příkazu je šablonou pro hledání případů, která obsahuje funkce CASE, WHEN, ELSE a END. CASE WHEN [Country] = 'Canada' THEN ([List Price] * 0.60) WHEN [CountryCode] > 100 THEN [List Price] * 0.80 ELSE [List Price] END simple case Tato syntaxe příkazu je šablonou pro jednoduchý případ, která obsahuje funkce CASE, WHEN, ELSE a END. CASE [Country] WHEN 'Canada' THEN ([List Price] * 0.60) WHEN 'Australia' THEN [List Price] * 0.80 ELSE [List Price] END if then else Tato syntaxe příkazu je šablonou pro příkaz if...then...else. Tato syntaxe příkazu je použita ve vzorové sestavě Nejlepších 10 prodejců v roce 2005 v balíku Datový sklad GO (analýza). IF ([Country] = 'Canada') THEN ([List Price] * 0.60) ELSE ([List Price]) in_range Toto je šablona pro výraz in_range. [kód] IN_RANGE { :30 ; 40; 50; 999: } Příklad: [kód] IN_RANGE { 5 } Výsledek: Jde o ekvivalent pro [kód] = 5. Příklad: [kód] IN_RANGE { 5: } Výsledek: Jde o ekvivalent pro [kód] >= 5. Příklad: [kód] IN_RANGE { :5 } Výsledek: Jde o ekvivalent pro [kód] <= 5. Příklad: [kód] IN_RANGE { 5:10 } Výsledek: Jde o ekvivalent pro ( [kód] >= 5 a [kód] <= 10 ) Příklad: [kód] IN_RANGE { :5;10;20: } Výsledek: Jde o ekvivalent pro ( [kód] <= 5 nebo [kód] = 10 nebo [kód] >= 20 ).
Predikáty období Tento seznam obsahuje predikáty, které se používají při porovnávání výrazů období. obsahuje Vrátí hodnotu "true", pokud položka výraz_období1 obsahuje položku výraz_období2, tj. hodnota "true" bude vrácena, pokud první období obsahuje hodnotu data a času nebo všechny hodnoty, které jsou obsaženy v druhém období. výraz_období1 contains ( výraz_období2 | výraz_typu_datum_čas ) period( 1989-11-01, 1991-05-19 ) contains period( 1991-05-19, 1991-06-04 ) Výsledek: false period( 1989-11-01, 1991-05-19 ) contains period( 1990-05-19, 1991-04-04 ) Výsledek: true period( 1989-11-01, 1991-05-19 ) contains 1991-04-04 Výsledek: true equals Vrátí hodnotu "true", pokud hodnoty začátku období a konce období jsou pro položky výraz_období1 a výraz_období2 stejné. výraz_období1 equals výraz_období2 period( 1989-11-01, 1991-05-19 ) equals period( 1989-11-01, 1991-05-19 ) Výsledek: true immediately precedes Vrátí hodnotu "true", pokud položka výraz_období1 přímo předchází položce výraz_období2 (tedy hodnota konce prvního období je rovna hodnotě začátku druhého období). výraz_období1 immediately precedes výraz_období2 period( 1989-11-01, 1991-05-19 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Výsledek: true period( 1989-11-01, 1991-05-18 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Výsledek: false immediately succeeds Vrátí hodnotu "true", pokud položka výraz_období1 přímo navazuje na položku výraz_období2 (tedy hodnota začátku prvního období je rovna hodnotě konce druhého období). výraz_období1 immediately succeeds výraz_období2 period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-19, 1991-05-19 ) Výsledek: true period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-20, 1991-05-18 ) Výsledek: false overlaps Vrátí hodnotu "true", pokud se položka výraz_období1 překrývá s položkou výraz_období2 (tedy obě položky mají alespoň jednu společnou hodnotu). výraz_období1 overlaps výraz_období2 period( 1991-05-19, 1994-01-10 ) overlaps period( 1993-01-19, 1995-05-19 ) Výsledek: true precedes Vrátí hodnotu "true", pokud položka výraz_období1 předchází položce výraz_období2 (tedy všechny hodnoty obsažené v prvním období jsou menší nebo rovny hodnotě začátku druhého období). výraz_období1 precedes výraz_období2 period( 1989-11-01, 1991-05-19 ) precedes period( 1991-05-19, 1991-06-04 ) Výsledek: true period( 1989-11-01, 1991-05-18 ) precedes period( 1991-05-19, 1991-06-04 ) Výsledek: true succeeds Vrátí hodnotu "true", pokud položka výraz_období1 následuje po položce výraz_období2 (tedy všechny hodnoty obsažené v prvním období jsou větší nebo rovny hodnotě konce druhého období). výraz_období1 succeeds výraz_období2 period( 1991-05-19, 1994-01-10 ) succeeds period( 1991-01-19, 1991-05-19 ) Výsledek: true period( 1991-05-20, 1994-01-10 ) succeeds period( 1991-01-20, 1991-05-19 ) Výsledek: true
Obchodní funkce data a času Tento seznam obsahuje obchodní funkce pro výpočet data a času. _add_seconds ( výraz_typu_čas; výraz_typu_celé_číslo ) V závislosti na formátu "výrazu_typu_čas" vrací čas nebo datum a čas, které jsou výsledkem přičtení "výrazu_typu_celé_číslo" sekund k "výrazu_typu_čas". Příklad: _add_seconds ( 13:04:59 ; 1 ) Výsledek: 13:05:00 Příklad: _add_seconds ( 2002-04-30 12:10:10.000; 1 ) Výsledek: 2002-04-30 12:10:11.000 Příklad: _add_seconds ( 2002-04-30 00:00:00.000; 1/100 ) Poznámka: druhý argument není celé číslo. To je některými databázovými technologiemi podporováno a zvyšuje část určující čas. Výsledek: 2002-04-30 00:00:00.010 _add_minutes ( výraz_typu_čas; výraz_typu_celé_číslo ) V závislosti na formátu "výrazu_typu_čas" vrací čas nebo datum a čas, které jsou výsledkem přičtení "výrazu_typu_celé_číslo" minut k "výrazu_typu_čas". Příklad: _add_minutes ( 13:59:00 ; 1 ) Výsledek: 14:00:00 Příklad: _add_minutes ( 2002-04-30 12:59:10.000; 1 ) Výsledek: 2002-04-30 13:00:10.000 Příklad: _add_minutes ( 2002-04-30 00:00:00.000; 1/60 ) Poznámka: druhý argument není celé číslo. To je některými databázovými technologiemi podporováno a zvyšuje část určující čas. Výsledek: 2002-04-30 00:00:01.000 _add_hours ( výraz_typu_čas; výraz_typu_celé_číslo ) V závislosti na formátu "výrazu_typu_čas" vrací čas nebo datum a čas, které jsou výsledkem přičtení "výrazu_typu_celé_číslo" hodin k "výrazu_typu_čas". Příklad: _add_hours ( 13:59:00 ; 1 ) Výsledek: 14:59:00 Příklad: _add_hours ( 2002-04-30 12:10:10.000; 1 ) Výsledek: 2002-04-30 13:10:10.000, Příklad: _add_hours ( 2002-04-30 00:00:00.000; 1/60 ) Poznámka: druhý argument není celé číslo. To je některými databázovými technologiemi podporováno a zvyšuje část určující čas. Výsledek: 2002-04-30 00:01:00.000 _add_days ( výraz_typu_datum; výraz_typu_celé_číslo ) V závislosti na formátu "výrazu_typu_datum" vrací datum nebo datum a čas, které jsou výsledkem přičtení "výrazu_typu_celé_číslo" dnů k "výrazu_typu_datum". Příklad: _add_days ( 2002-04-30 ; 1 ) Výsledek: 01.05.02 Příklad: _add_days ( 2002-04-30 12:10:10.000; 1 ) Výsledek: 01.05.02 12:10:10.000 Příklad: _add_days ( 2002-04-30 00:00:00.000; 1/24 ) Poznámka: druhý argument není celé číslo. To je některými databázovými technologiemi podporováno a zvyšuje část určující čas. Výsledek: 30.04.02 01:00:00.000 _add_months ( výraz_typu_datum; výraz_typu_celé_číslo ) Přidá "výraz_typu_celé_číslo" měsíců k "výrazu_typu_datum". Pokud má výsledný měsíc méně dní než komponenta den v měsíci, bude vrácen poslední den výsledného měsíce. Ve všech ostatních případech bude mít vrácená hodnota stejnou komponentu den v měsíci jako "výraz_typu_datum". Příklad: _add_months ( 2012-04-15 ; 3 ) Výsledek: 2012-07-15 Výsledek není posledním dnem výsledného měsíce. Příklad: _add_months ( 2012-02-29 ; 1 ) Výsledek: 2012-03-29 Chcete-li vrátit poslední den měsíce, použijte funkci _last_of_month. Příklad: _last_of_month ( _add_months ( 2012-02-29 ; 1 ) ) Výsledek: 2012-03-31 Den je přizpůsoben poslednímu dni výsledného měsíce. Příklad: _add_months ( 2012-01-31 ; 1 ) Výsledek: 2012-02-29 Přidávání k časovému razítku. Příklad: _add_months ( 2002-04-30 12:10:10.000 ; 1 ) Výsledek: 2002-05-30 12:10:10.000 _add_years ( výraz_typu_datum; výraz_typu_celé_číslo ) Přidá "výraz_typu_celé_číslo" roků k "výrazu_typu_datum". Pokud je "výraz_typu_datum" 29. února a výsledný rok není přestupný, výsledný den bude nastaven na 28. února. Ve všech ostatních případech bude mít vrácená hodnota stejný den a měsíc jako "výraz_typu_datum". Příklad: _add_years ( 2012-04-15 ; 1 ) Výsledek: 2013-04-15 29. únor je přizpůsoben pro nepřestupné roky. Příklad: _add_years ( 2012-02-29 ; 1 ) Výsledek: 2013-02-28 Přidávání k časovému razítku. Příklad: _add_years ( 2002-04-30 12:10:10.000 ; 1 ) Výsledek: 2003-04-30 12:10:10.000 _age ( výraz_typu_datum ) Vrací číslo, které je získáno odečtením "výrazu_typu_datum" od dnešního data. Vrácená hodnota má formát RRRRMMDD, kde RRRR představuje počet let, MM představuje počet měsíců a DD představuje počet dnů. Příklad: _age ( 1990-04-30 ) (je-li dnešní datum 2003-02-05) Výsledek: 120906, což znamená 12 let, 9 měsíců a 6 dnů. _date_to_int ( výraz_typu_datum ) Vrátí celočíselnou reprezentaci pro "výraz_typu_datum". Vrácená hodnota má formát RRRRMMDD, kde RRRR představuje počet let, MM představuje počet měsíců a DD představuje počet dnů. Příklad: _date_to_int ( 2003-01-01 ) Výsledek: 20030101 _day_of_week ( výraz_typu_datum; celé_číslo ) Vrací den v týdnu (1 až 7), kde 1 je první den v týdnu v souladu s druhým parametrem (1 až 7, 1 je pondělí a 7 neděle). Poznámka: podle normy ISO 8601 začíná týden pondělím, které je dnem 1. Příklad: _day_of_week ( 2003-01-01 ; 1 ) Výsledek: 3 _day_of_year ( výraz_typu_datum ) Vrací den v roce (1 až 366) z "výrazu_typu_datum". Známé také jako juliánský den. Příklad: _day_of_year ( 2003-03-01 ) Výsledek: 61 _days_between ( výraz_typu_datum1 ; výraz_typu_datum2 ) Vrací kladné nebo záporné číslo představující počet dnů mezi "výrazem_typu_datum1" a "výrazem_typu_datum2". Pokud "výraz_typu_datum1" < "výraz_typu_datum2", bude výsledkem záporné číslo. Příklad: _days_between ( 2002-06-21 , 2002-04-30 ) Výsledek: 52 Příklad: _days_between ( 2002-04-30 ; 2002-06-21 ) Výsledek: -52 _days_to_end_of_month ( výraz_typu_datum ) Vrací číslo představující počet dnů zbývajících v měsíci reprezentovaném "výrazem_typu_datum". Příklad: _days_to_end_of_month ( 2002-04-20 14:30:22.123 ) Výsledek: 10 _first_of_month ( výraz_typu_datum ) V závislosti na argumentu vrací datum nebo datum a čas pomocí převodu "výrazu_typu_datum" na datum se stejným rokem a měsícem, ale se dnem nastaveným na 1. Příklad: _first_of_month ( 2002-04-20 ) Výsledek: 01.04.02 Příklad: _first_of_month ( 2002-04-20 12:10:10.000 ) Výsledek: 01.04.02 12:10:10.000 _last_of_month ( výraz_typu_datum ) V závislosti na argumentu vrací datum nebo datum a čas, které jsou posledním dnem měsíce představovaného "výrazem_typu_datum". Příklad: _last_of_month ( 2002-01-14 ) Výsledek: 2002-01-31 Příklad: _last_of_month ( 2002-01-14 12:10:10.000 ) Výsledek: 2002-01-31 12:10:10.000 _make_timestamp ( výraz_typu_celé_číslo1; výraz_typu_celé_číslo2; výraz_typu_celé_číslo3 ) Vrací časové razítko vytvořené z "výrazu_typu_celé_číslo1" (rok), "výrazu_typu_celé_číslo2" (měsíc) a "výrazu_typu_celé_číslo3" (den). Výchozí hodnota části udávající čas je 00:00:00.000 . Příklad: _make_timestamp ( 2002 ; 01 ; 14 ) Výsledek: 14.01.02 00:00:00.000 _months_between ( výraz_typu_datum1; výraz_typu_datum2 ) Vrací kladné nebo záporné celé číslo představující počet měsíců mezi "výrazem_typu_datum1" a "výrazem_typu_datum2". Pokud "výraz_typu_datum1" je dříve než "výraz_typu_datum2", bude vráceno záporné číslo. Příklad: _months_between ( 2002-04-03 ; 2002-01-30 ) Výsledek: 2 Příklad: _months_between ( 2002-01-30 , 2002-04-03 ) Výsledek: -2 _shift_timezone ( hodnota_časového_razítka , zdrojové_časové_pásmo , cílové_časové_pásmo ) _shift_timezone ( hodnota_časového_razítka_s_časovým_pásmem , cílové_časové_pásmo ) Posune hodnotu časového razítka z jednoho časového pásma do jiného časového pásma. Tato funkce podle potřeby respektuje letní čas. Pokud je první argument typu časové razítko, pak druhý a třetí argument představují zdrojové a cílové časové pásmo. Pokud je první argument typu časové razítko s časovým pásmem, pak zdrojové časové pásmo je již určeno a druhý argument představuje cílové časové pásmo. Datový typ prvního argumentu také určuje datový typ návratové hodnoty. Druhý a třetí argument je typu řetězec a představuje identifikátor časového pásma. Seznam těchto identifikátorů lze najít dále. Poznámka: Použití této funkce způsobí lokální zpracování. Příklad: _shift_timezone( 2013-06-30 12:00:00 , 'Amerika/New_York' , 'GMT' ) Výsledek: 2013-06-30 16:00:00 Příklad: _shift_timezone( 2013-11-30 12:00:00-05:00 , 'Amerika/Vancouver' ) Výsledek: 2013-11-30 09:00:00-08:00 Identifikátory časových pásem: 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 Lze také použít přizpůsobený identifikátor časového pásma pomocí formátu GMT(+|-)HH:MM. Například GMT-06:30 nebo GMT+02:00. _week_of_year ( výraz_typu_datum ) Vrací číslo týdne v roce pro "výraz_typu_datum" v souladu s normou ISO 8601. Týden 1 roku je první týden roku, který obsahuje čtvrtek, což odpovídá prvnímu týdnu obsahujícímu 4. ledna. Týden začíná pondělím (den 1) a končí nedělí (den 7). Příklad: _week_of_year ( 2003-01-01 ) Výsledek: 1 _years_between ( výraz_typu_datum1; výraz_typu_datum2 ) Vrací kladné nebo záporné celé číslo představující počet let mezi "výrazem_typu_datum1" a "výrazem_typu_datum2". Pokud "výraz_typu_datum1" < "výraz_typu_datum2", bude vrácena záporná hodnota. Příklad: _years_between ( 2003-01-30 ; 2001-04-03 ) Výsledek: 1 Příklad: _years_between ( 2001-04-03 , 2003-01-30 ) Výsledek: -1 _ymdint_between ( výraz_typu_datum1 ; výraz_typu_datum2 ) Vrací číslo představující rozdíl mezi "výrazem_typu_datum1" a "výrazem_typu_datum2". Vrácená hodnota má formát RRRRMMDD, kde RRRR představuje počet let, MM představuje počet měsíců a DD představuje počet dnů. Příklad: _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Výsledek: 120905, což znamená 12 let, 9 měsíců a 5 dnů. _year ( výraz_typu_datum ) Vrací hodnotu pole roku ve výrazu výraz_typu_datum. Příklad: _year ( 2003-03-01 ) Výsledek: 2003 _month ( výraz_typu_datum ) Vrací hodnotu pole měsíce ve výrazu výraz_typu_datum. Příklad: _month ( 2003-03-01 ) Výsledek: 3 _day ( výraz_typu_datum ) Vrací hodnotu pole dne ve výrazu výraz_typu_datum. Příklad: _day ( 2003-03-01 ) Výsledek: 1 _hour ( výraz_typu_datum ) Vrací hodnotu pole hodin ve výrazu výraz_typu_datum. Příklad: _hour ( 2002-01-31 12:10:10.254 ) Výsledek: 12 _minute ( výraz_typu_datum ) Vrací hodnotu pole minut ve výrazu výraz_typu_datum. Příklad: _minute ( 2002-01-31 12:10:10.254 ) Výsledek: 10 _second ( výraz_typu_datum ) Vrací hodnotu pole sekund ve výrazu výraz_typu_datum. Příklad: _second ( 2002-01-31 12:10:10.254 ) Výsledek: 10,254 _timezone_hour ( hodnota_časového_razítka_s_časovým_pásmem ) _timezone_hour ( hodnota_času_s_časovým_pásmem ) Vrací hodnotu pole hodin časového pásma ve výrazu. Výraz musí být typu "časové razítko s časovým pásmem" nebo "čas s časovým pásmem". Příklad: _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Výsledek: -5 _timezone_minute ( hodnota_časového_razítka_s_časovým_pásmem ) _timezone_minute ( hodnota_času_s_časovým_pásmem ) Vrací hodnotu pole minut časového pásma ve výrazu. Výraz musí být typu "časové razítko s časovým pásmem" nebo "čas s časovým pásmem". Příklad: _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Výsledek: -30 _start_of_day ([ výraz_typu_datum ]) Vrací začátek pro "výraz_typu_datum" nebo začátek pro dnešek jako časové razítko. Příklad: _start_of_day ( 2014-11-23 12:10:10.254 ) Výsledek: 2014-11-23 00:00:00 Příklad: _start_of_day () Výsledek: 2016-01-01 00:00:00 _end_of_day ([ výraz_typu_datum ]) Vrací konec pro "výraz_typu_datum" nebo konec pro dnešek jako časové razítko. Příklad: _end_of_day ( 2014-11-23 12:10:10.254 ) Výsledek: 2014-11-23 23:59:59 Příklad: _end_of_day () Výsledek: 2016-01-01 23:59:59 _unix_timestamp ( výraz_typu_datum ) Vrátí počet sekund od 1. ledna 1970 0:00:000.00 pro daný výraz typu datum. Příklad: _unix_timestamp ( 2014-11-23 ) Výsledek: 1416718800 _from_unixtime ( výraz_typu_celé_číslo ) Vrátí čas systému UNIX určený položkou výraz_typu_celé_číslo jako časové razítko s časovým pásmem. Příklad: _from_unixtime (1417807335) Výsledek: 2014-12-05 19:22:15+00:00
Funkce maker Tento seznam obsahuje funkce, které lze použít v rámci makra. Makro může obsahovat jednu či více funkcí maker. Makro je na začátku a na konci ohraničené znakem #. Všechno mezi znaky # je považováno za výraz makra a prováděno za běhu. U funkcí maker, které přijímají výrazy datového typu časové razítko s časovými pásmy jako argumenty, je akceptovaný formát 'rrrr-mm-dd hh:mm:ss[.zz]+hh:mm', kde zlomky sekund jsou volitelné a mohou být představovány 1 až 9 číslicemi. Namísto mezery oddělující část udávající datum od části udávající čas je akceptován také znak 'T'. Také místo časového pásma '+hh:mm' je akceptován znak 'Z' a bude interně zpracován jako '+00:00'. Funkce maker, které vracejí výrazy datového typu časové razítko s časovým pásmem, vracejí standardně 9 číslic zlomků sekundy. Pokud je třeba zkrátit výstup, lze použít funkci makra timestampMask (). Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" sekund k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. _add_seconds ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_seconds ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 2005-11-01 11:59:59.000-05:00 Příklad: # _add_seconds ( $current_timestamp ; 1 ) # Výsledek: 2005-11-01 12:00:01.000000000-05:00 Příklad: # timestampMask ( _add_seconds ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Výsledek: 12:00:01 Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" minut k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. _add_minutes ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_minutes ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 2005-11-01 11:59:00.000-05:00 Příklad: # _add_minutes ( $current_timestamp ; 1 ) # Výsledek: 2005-11-01 12:01:00.000000000-05:00 Příklad: # timestampMask ( _add_minutes ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Výsledek: 12:01:00 Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" hodin k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. _add_hours ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_hours ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 2005-11-01 13:00:00.000-05:00 Příklad: # _add_hours ( $current_timestamp ; 1 ) # Výsledek: 2005-11-01 13:00:00.000000000-05:00 Příklad: # timestampMask ( _add_hours ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Výsledek: 13:00:00 Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" dnů k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. Pokud je první argument datum, které je zadané ve formátu yyyy-mm-dd, návratová hodnota je řetězec naformátovaný jako datum. _add_days ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_days ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 31.10.05 12:00:00.000000000-05:00 Příklad: # _add_days ( $current_timestamp ; 1 ) # Výsledek: 02.11.05 12:00:00.000000000-05:00 Příklad: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Výsledek: 02.11.05 Příklad: # _add_days( '2019-11-14' , 3 ) # Výsledek: 2019-11-17 Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" měsíců k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. Pokud je první argument datum, které je zadané ve formátu yyyy-mm-dd, návratová hodnota je řetězec naformátovaný jako datum. _add_months ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_months ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 01.10.05 12:00:00.000000000-05:00 Příklad: # _add_months ( $current_timestamp ; 1 ) # Výsledek: 01.12.05 12:00:00.000000000-05:00 Příklad: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Výsledek: 01.12.05 Příklad: # _add_months( '2019-11-14' , -1 ) # Výsledek: 2019-10-14 Vrací časové razítko s časovým pásmem (jako řetězec), které je výsledkem přičtení "výrazu_typu_celé_číslo" roků k "výrazu_typu_řetězec", kde "výraz_typu_řetězec" představuje časové razítko s časovým pásmem. Pokud je první argument datum, které je zadané ve formátu yyyy-mm-dd, návratová hodnota je řetězec naformátovaný jako datum. _add_years ( výraz_typu_řetězec ; výraz_typu_celé_číslo ) Příklad: # _add_years ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Výsledek: 01.11.04 12:00:00.000000000-05:00 Příklad: # _add_years ( $current_timestamp ; 1 ) # Výsledek: 01.11.06 12:00:00.000000000-05:00 Příklad: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Výsledek: 01.11.06 Příklad: # _add_years( '2019-11-14' , -2 ) # Výsledek: 2017-11-14 _first_of_month ( výraz_typu_řetězec ) Vrací časové razítko s časovým pásmem (jako řetězec) pomocí převodu dne z "výrazu_typu_řetězec" na 1, kde "výraz_typu_řetězec" je časové razítko s časovým pásmem. Příklad: # _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Výsledek: 2005-11-01 12:00:00.000000000-05:00 Příklad: # timestampMask ( _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyymmdd' ) # Výsledek: 20051101 _last_of_month ( výraz_typu_řetězec ) Vrací časové razítko s časovým pásmem (jako řetězec) odpovídající poslednímu dnu měsíce představovanému "výrazem_typu_řetězec", kde "výraz_typu_řetězec" je časové razítko s časovým pásmem. Příklad: # _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Výsledek: 2005-11-30 12:00:00.000000000-05:00 Příklad: # timestampMask ( _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyy-mm-dd' ) # Výsledek: 2005-11-30 modelj ( 'identifikátor' [ , 'cesta_hledání_modelu' [ , 'volby' ] ] ) Vrací část modelu metadat ve formátu JSON. Pokud není 'cesta_hledání_modelu' zadána, použije se aktuální model. Argument 'volby' může být nastaven na hodnotu 'cleanup', což změní některé části výsledku na pevné hodnoty (vhodné pro testování). sq ( modelj ( '[gosales].[country].[country]' ) Uzavře "výraz_typu_řetězec" do hranatých závorek. sb ( výraz_typu_řetězec ) Příklad: # sb ( 'abc' ) # Výsledek: [abc] Uzavře "výraz_typu_řetězec" do apostrofů. sq ( výraz_typu_řetězec ) Příklad: # sq ( 'zero' ) # Výsledek: 'zero' Uzavře "výraz_typu_řetězec" do uvozovek. dq ( výraz_typu_řetězec ) Příklad: # dq ( 'zero' ) # Výsledek: "zero" Používá informace o identitě aktuálního ověřeného uživatele k vyhledání hodnot ve stanovené mapě parametrů. Každý jednotlivý údaj o identitě uživatele (název účtu, názvy skupin, názvy rolí) je použit jako jeden z klíčů k mapě. Jedinečný seznam hodnot, který je načten z mapy parametrů, je potom vrácen jako řetězec, kde je každá hodnota uzavřená v apostrofech a různé hodnoty jsou odděleny čárkami. CSVIdentityName ( %parameter_map_name [ ; řetězec_oddělovače ] ) Příklad: # CSVIdentityName ( %security_clearance_level_map ) # Výsledek: 'level_500', 'level_501', 'level_700' Vrací údaje o identitě uživatele (název účtu, názvy skupin, názvy rolí) jako seznam řetězců. Jedinečný seznam hodnot je vrácen jako řetězec, kde jsou jednotlivé hodnoty uzavřeny v apostrofech a různé hodnoty odděleny čárkami. CSVIdentityNameList ( [ řetězec_oddělovače ] ) Příklad: # CSVIdentityNameList ( ) # Výsledek: 'Everyone', 'Report Administrators', 'Query User' Vrací pas CAM (Cognos® Access Manager). CAMPassport ( ) Příklad: # CAMPassport ( ) # Výsledek: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Vrací údaje daného ID uživatele Cognos® Access Manager (CAMID), např. jméno účtu, názvy skupin či názvy rolí, jako je seznam hodnot oddělených čárkami. CAMIDList ( [ řetězec_oddělovače ] ) Příklad: #CAMIDList ( ) # Výsledek: CAMID ( "::Everyone" ) ; CAMID ( ":Authors" ) ; CAMID ( ":Query Users" ) ; CAMID ( ":Consumers" ) ; CAMID ( ":Metrics Authors" ) Vrací pole identifikátorů uživatelů Cognos® Access Manager (CAMID) na základě typu identity (účet, skupina nebo role). CAMIDListForType lze používat s funkcemi maker csv nebo join. CAMIDListForType ( typ identity ) Příklad: [qs].[userRole] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Výsledek: [qs].[userRole] in ( 'CAMID ( "::System Administrators" ) ' ; 'CAMID ( ":Authors" )' ) Zřetězí dva řetězce. hodnota1 + hodnota2 Příklad: # '{ ' + $runLocale + ' }' # Výsledek: {en-us} Odřízne úvodní znaky z prvního argumentu. Nepovinný druhý argument definuje sadu odřezávaných znaků. Standardně funkce odřezává mezerové znaky (tj. mezera, tabulátor, znaky CR a LF). lstrip ( řetězcový_výraz [ ; sada_znaků ] ) Příklad: # sq( lstrip ( ' abc ' ) ) # Výsledek: 'abc ' Příklad: # lstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Výsledek: 53.2100 Vrátí hodnotu parametru "název_parametru", pokud je definovaný. Pokud parametr "název_parametru" neexistuje, bude vrácena hodnota "výchozí_text". Je-li argument "datový_typ" nastaven na hodnotu "string", bude výsledná hodnota uzavřena v uvozovkách. Použití této funkce nezpůsobí výjimku chybějícího parametru. ParamValue ( název_parametru [ , výchozí_text [, datový_typ ] ] ) Příklad: # ParamValue ( 'p_country' ) # Výsledek: 'Canada' - parametr p_country je nastaven; Výsledek: null - parametr p_country je neznámý; Výsledek: null - parametr p_country se používá v nepovinné výzvě k zadání a není nastaven. Příklad: # ParamValue ( 'p_country' , 'Netherlands' ) # Výsledek: 'Canada' - parametr p_country je nastaven; Výsledek: 'Netherlands' - parametr p_country je neznámý; Výsledek: 'Netherlands' - parametr p_country se používá v nepovinné výzvě k zadání a není nastaven. Příklad: # ParamValue ( 'p_country', ' cast ( null as varchar(20)) ' , 'token' ) # Výsledek: 'Canada' - parametr p_country je nastaven; Výsledek: cast ( null as varchar(20)) - parametr p_country je neznámý; Výsledek: cast ( null as varchar(20)) - parametr p_country se používá v nepovinné výzvě k zadání a není nastaven. Vyzve uživatele k zadání jediné hodnoty nebo člena. Povinný je pouze "název_výzvy_k_zadání". Není-li určen datový_typ, je výchozí datový typ 'string'. Když je zadán argument "výchozí_text", je výzva k zadání volitelná. Je-li určen "text", bude před hodnotou. Je možné zadat "položkuDotazu" a tím využít informačních vlastností výzvy k zadání "položkyDotazu". Je-li určen "koncový_text", bude připojen za hodnotu. Je-li datový typ 'memberuniquename', vytvoří se výzva k zadání pro výběr jednoho člena. Je dobrým zvykem poskytovat výchozí hodnotu jako 3. argument. Výchozí hodnota musí být platný jedinečný název člena. Může to být také alias odkazující na jedinečný název člena jako v produktu Report Studio. prompt ( název_výzvy ; datový_typ ; výchozí_text ; text ; položka_dotazu ; koncový_text ) Příklad: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > #prompt ( 'Počáteční kód země' ; 'integer' ; '10' ) # Výsledek: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Příklad: [gosales].[COUNTRY].[COUNTRY] = # prompt ( 'countryPrompt' ; 'string' ; '''Canada''' ) # Výsledek: [gosales].[COUNTRY].[COUNTRY] = 'Canada' Příklad: set ( #prompt ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Výsledek: set([Sales].[Product].[Product].[Product line]->[all].[1]) Musí být zadán parametr "výchozí_text", který je doslovně platný v kontextu makra, protože tato hodnota není nijak formátována. Výchozí řetězec '''Canada''' v Příkladu 2 je určen jako řetězec s použitím apostrofů, ve kterých jsou vložené apostrofy zdvojeny, takže jsou použity 3 apostrofy. Výsledkem je řetězec správně zobrazený ve výrazu v jedněch apostrofech. Pro datový typ řetězec obecně platí, že má být parametr "výchozíText' vždy uveden takto s výjimkou kontextu parametru uložené procedury. Pro "výchozí_text" typů 'date' nebo 'datetime' je třeba v kontextu SQL použít speciální formát. Příklady těchto formátů jsou 'DATE ''2001-12-25''' a 'DATETIME ''2001-12-25 12:00:00'''. Ve všech ostatních kontextech použijte datum či datum a čas bez klíčových slov a apostrofů navíc (např. '2001-12-25'). Vyzve uživatele k zadání nejméně jedné hodnoty nebo člena. Povinný je pouze "název_výzvy_k_zadání". Není-li určen datový_typ, je výchozí datový typ 'string'. Když je zadán argument "výchozí_text", je výzva k zadání volitelná. Je-li určen "text", bude před seznamem hodnot. Je možné zadat "položkuDotazu" a tím využít informačních vlastností výzvy k zadání "položkyDotazu". Je-li určen "koncový_text", bude připojen za seznamem hodnot. Je-li datový typ 'memberuniquename', vytvoří se výzva k zadání pro výběr více členů. Je dobrým zvykem poskytovat výchozí hodnotu jako 3. argument. Výchozí hodnota musí být platný jedinečný název člena. Může to být také alias odkazující na jedinečný název člena jako v produktu Report Studio. promptmany ( název_výzvy ; datový_typ ; výchozí_text ; text ; položka_dotazu ; koncový_text ) Příklad: select . . . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( 'CountryName' ) # ) Výsledek: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Kanada' ; 'Nizozemsko' ; 'Rusko' ) Příklad: 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 ( ' ; '' ; ' ) ' ) # Výsledek: 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 ( 'Kanada' ; 'Nizozemsko' ; 'Rusko' ) Příklad: set ( #promptmany ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Výsledek: set([Sales].[Product].[Product].[Product line]->[all].[1]; [Sales].[Product].[Product].[Product line]->[all].[2]) Provede dotaz pro jednotlivý sloupec a vrátí hodnotu v prvním řádku (pouze). Výsledek není formátován, proto kolem volání použijte funkci sq ( ) podle potřeby. queryValue ( výraz_hodnoty [ , výraz_filtru ] ) Příklad: # sq ( queryValue ( 'TheCalendar.TheWeekdayName' , 'TheCalendar.TheDate = 2018-06-06' ) ) # Výsledek: 'Wednesday' Sestaví pole ze seznamu parametrů. array ( výraz_typu_řetězec|výraz_typu_pole { ; výraz_typu_řetězec|výraz_typu_pole } ) Příklad: # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Výsledek: 'a1' ; 'x1' ; 'x2' ; 'a2' Sestaví řetězec z prvků pole, kde jsou hodnoty odděleny středníky. Volitelně je možné uvést řetězec oddělovače a uvozovací řetězec. Výchozím oddělovačem je čárka ( ; ) a výchozím uvozovacím znakem je apostrof ( ' ). csv ( výraz_typu_pole [ ; řetězec_oddělovače [ ; uvozovací_řetězec ] ] ) Příklad: # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Výsledek: 'a1'; 'a2' Získání položky z konfiguračního souboru IBM® Cognos®. Příznak_nuceného_dekódování je volitelný a musí mít jednu z těchto hodnot: 'true' , '1', 1 , 'false', '0', 0. Výchozí nastavení je 'false'. Ve výjimečných případech lze příznak_nuceného_dekódování nastavit na hodnotu true. Je-li příznak_nuceného_dekódování nastaven na hodnotu true, je pro položky konfigurované v konfiguraci produktu IBM® Cognos® prostřednictvím funkce Rozšířené vlastnosti vrácena hodnota konfigurační položky jako prostý text. Pro položky, které nejsou identifikovány funkcí Rozšířené vlastnosti je vrácen prázdný řetězec, bez ohledu na přítomnost šifrovaných informací. Položka ve funkci Rozšířené vlastnosti je qs.getConfigurationEntry.1 a představuje seznam názvů oddělených středníkem. Standardně je tento seznam názvů prázdný a volání této funkce s příznakem nastaveným na hodnotu true vrátí prázdný řetězec. getConfigurationEntry ( řetězec_položky ; příznak_nuceného_dekódování ) Příklad: # getConfigurationEntry ( 'serverLocale'  ) # Výsledek: en Vrací položku ze souboru prostředků. První argument je ID prostředku nalezeného v souboru prostředků. Volitelný druhý argument je název souboru prostředků bez přípony národního prostředí (například 'mfwa4j' pro soubor zpráv 'mfwa4j_en.properties'). Výchozí soubor prostředků je 'xqejavamsgs'. Volitelný třetí argument je národní prostředí, s výchozí hodnotou 'en'. getResourceString ( řetězec_id_prostředku [, řetězec_souboru_prostředků [ , řetězec_národního_prostředí ] ] ) Příklad: # getResourceString ( 'XQE_BIN_binLow' ) # Výsledek: XQE-BIN-0001 menší než %1 Příklad: # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Výsledek: MFW-UT-1002 Došlo k internímu problému. Obraťte se na administrátora systému. Hledá a vrací prvky pole, které odpovídají vzoru uvedenému v řetězci "řetězec_vzoru". Podporovány jsou pouze následující metaznaky: ^ (začátek slova), $ (konec slova), ! (negace - podporováno pouze jako první znak). grep ( řetězec_vzoru ; výraz_typu_pole ) Příklad: # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Výsledek: 'as'; 'arts' Příklad: # sq ( csv ( grep ( '^g' , array ( 'group', 'golf' ) ) ) ) # Výsledek: 'group', 'golf' Příklad: # sq ( csv ( grep ( 's$' , array ( 'oranges', 'mangoes' ) ) ) ) # Výsledek: 'oranges', 'mangoes' Příklad: # sq ( csv ( grep ( '!o' , array ( 'oranges', 'apples' ) ) ) ) # Výsledek: 'apples' Najde pozici v řetězci 'řetězec', na které začíná podřetězec 'podřetězec'. Není-li podřetězec 'podřetězec' nalezen, je vrácena hodnota -1. Lze zadat i volitelný parametr 'pozice', který určuje, od které pozice se má hledat. Prvním argumentem 'řetězec' může být také výraz výraz_typu_pole; v takovém případě je funkce použita na každý prvek pole a výsledkem funkce je pole hodnot. index ( str , substr [ , offset ] ) # index ( 'The black horse jumped over the black sheep.', 'black' ) # Výsledek: 4 # index ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Výsledek: 32 # index ( 'The black horse jumped over the black sheep.', 'green' ) # Výsledek: -1 # sq ( join ( ' | ', index ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Výsledek: -1 | 1 | 2 Spojí prvky pole pomocí "řetězce_oddělovače". join ( řetězec_oddělovače ; výraz_typu_pole ) Příklad: # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Výsledek: 'as | | an | | arts' Vypočítá počet znaků ve výrazu výraz_typu_řetězec. Pokud je argumentem výraz výraz_typu_pole, bude výsledkem pole hodnot a každý položka bude představovat počet znaků v každém z prvků výrazu výraz_typu_pole. length ( výraz_typu_řetězec | výraz_typu_pole ) length ( 'abcdef' ) Výsledek: 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Výsledek: 6--3 Najde poslední pozici v řetězci 'řetězec', na které začíná podřetězec 'podřetězec'. Tato funkce se nazývá obrácená indexace a lze na ni nahlížet, jako by s procházením začínala na konci řetězce. Není-li podřetězec 'podřetězec' nalezen, je vrácena hodnota -1. Lze zadat i volitelný parametr 'pozice', který určuje, do které pozice se má hledat. Prvním argumentem 'řetězec' může být výraz výraz_typu_pole; v takovém případě je funkce použita na každý prvek pole a výsledkem funkce je pole hodnot. rindex ( str , substr [ , offset ] ) # rindex ( 'The black horse jumped over the black sheep.', 'black' ) # Výsledek: 32 # rindex ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Výsledek: 4 # rindex ( 'The black horse jumped over the black sheep.', 'green' ) # Výsledek: -1 # sq ( join ( ' | ', rindex ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Výsledek: -1 | 1 | 3 Odřízne koncové znaky z prvního argumentu. Nepovinný druhý argument definuje sadu odřezávaných znaků. Standardně funkce odřezává mezerové znaky (tj. mezera, tabulátor, znaky CR a LF). rstrip ( řetězcový_výraz [ ; sada_znaků ] ) Příklad: # sq( rstrip ( ' abc ' ) ) # Výsledek: ' abc' Příklad: # rstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Výsledek: 0053,21 Seřadí prvky pole v abecedním pořadí. Duplicity jsou zachovány. sort ( výraz_typu_pole ) Příklad: # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Výsledek: 'a'; 's3'; 'x' Rozdělí řetězec nebo prvky pole typu řetězec do samostatných prvků. split ( řetězec_vzoru; výraz_typu_řetězec|výraz_typu_pole ) Příklad: # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Výsledek: 'ab=c'; 'de=f'; 'gh=i' Příklad: # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Výsledek: 'ab'; 'c'; 'de'; 'f'; 'gh'; 'i' Odřízne úvodní a koncové znaky z prvního argumentu. Nepovinný druhý argument definuje sadu odřezávaných znaků. Standardně funkce odřezává mezerové znaky (tj. mezera, tabulátor, znaky CR a LF). strip ( řetězcový_výraz [ ; sada_znaků ] ) Příklad: # sq( strip ( ' abc ' ) ) # Výsledek: 'abc' Příklad: # strip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Výsledek: 53.21 Hledá vzor v řetězci nebo v prvcích pole typu řetězec a nahradí první výskyt "řetězce_vzoru" "náhradním_řetězcem". Podporovány jsou pouze následující metaznaky: ^ (začátek slova), $ (konec slova) substitute ( řetězec_vzoru; náhradní_řetězec; výraz_typu_řetězec|výraz_typu_pole ) Příklad: #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Výsledek: '***help' Příklad: # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Výsledek: '***help'; 'acn=5' Příklad: # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Výsledek: 'help'; 'a5' Příklad: #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Výsledek: 'cn=***' Extrahuje z výrazu výraz_typu_řetězec část začínající na pozici počáteční_pozice. Je možné zadat číslo délka určující počet znaků, které mají být extrahovány. Není-li zadán parametr 'délka', je vrácen řetězec až do konce výrazu 'výraz_typu_řetězec'. Prvním argumentem může být také výraz výraz_typu_pole; v takovém případě je funkce použita na každý prvek pole a výsledkem funkce je pole řetězců. substr ( výraz_typu_řetězec , počáteční_pozice [ , délka ] ) substr ( 'The horse is black.', 0, 3 ) Výsledek: The substr ( 'The horse is black.', 4 ) Výsledek: horse is black. substr ( 'The horse is black', index ('The horse is black.' , 'green' ) ) Výsledek: The horse is black. join ( ' | ', substr ( array ('black' , 'red', 'green' ) , 2, 2 ) ) Výsledek: ac | d | en substr ('over the moon', -2, 4) Výsledkem je chyba: Druhý argument funkce 'substr' musí být větší nebo roven -1. . Vrací "výraz_typu_řetězec1" představující časové razítko s časovým pásmem, zkrácený na formát určený "výrazem_typu_řetězec2". Formát ve "výrazu_typu_řetězec2" musí být jeden z následujících: 'yyyy', 'mm', 'dd', 'yyyy-mm', 'yyyymm', 'yyyy-mm-dd', 'yyyymmdd', 'yyyy-mm-dd hh:mm:ss', 'yyyy-mm-dd hh:mm:ss+hh:mm', 'yyyy-mm-dd hh:mm:ss.ff3', 'yyyy-mm-dd hh:mm:ss.ff3+hh:mm', 'yyyy-mm-ddThh:mm:ss', 'yyyy-mm-ddThh:mm:ss+hh:mm', 'yyyy-mm-ddThh:mm:ss.ff3+hh:mm' nebo 'yyyy-mm-ddThh:mm:ss.ff3+hh:mm'. Funkce maker, které vracejí časové razítko s časovým pásmem v řetězcové reprezentaci, vykazují standardně přesnost části určující zlomky sekund na 9 číslic. Volby formátování umožňují zkrácení na přesnost 3 či 0. timestampMask ( výraz_typu_řetězec1 ; výraz_typu_řetězec2 ) Příklad: # timestampMask ( $current_timestamp ; 'yyyy-dd-mm' ) # Výsledek: 2005-11-01 Příklad: # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # Výsledek: 2005-11-01 12:00:00-05:00 Příklad: # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'yyyy-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm' ) # Výsledek: 2005-11-01T12:00:00.123-05:00 Vrací řetězec představující časové razítko s časovým pásmem, které je výsledkem úpravy "výrazu_typu_řetězec" na časové pásmo operačního systému. Poznámka: výstup lze zkrátit pomocí funkce makra timestampMask (). toLocal ( výraz_typu_řetězec ) Příklad: # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # where OS local time zone is -05:00 Výsledek: 2005-11-01 12:00:00.000000000-05:00 Příklad: # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # kde místní časové pásmo OS je -05:00 Výsledek: 2005-11-01 12:00:00-05:00 Příklad: # toLocal ( '2005-11-01 13:30:00.000-03:30' ) #, kde místní časové pásmo OS je -05:00 Výsledek: 2005-11-01 12:00:00.000000000-05:00 Vrací řetězec "řetězcový_výraz" se všemi znaky převedenými na malá písmena pomocí pravidel pro národní prostředí "řetězec_národního_prostředí". Není-li určeno národní prostředí, použije se národní prostředí 'en'. tolower ( řetězcový_výraz [ ; řetězec_národního_prostředí ] ) Příklad: # tolower ( 'ABC' ) # Výsledek: abc Příklad: # tolower ( 'ABC' ; 'fr' ) # Výsledek: abc Vrací řetězec "řetězcový_výraz" se všemi znaky převedenými na velká písmena pomocí pravidel pro národní prostředí "řetězec_národního_prostředí". Není-li parametr "řetězec_národního_prostředí" určen, použije se národní prostředí 'en'. toupper ( řetězcový_výraz [ ; řetězec_národního_prostředí ] ) Příklad: # toupper ( 'abc' ) # Výsledek: ABC Příklad: # toupper ( 'abc' ; 'fr' ) # Výsledek: ABC Vrací časové razítko s časovým pásmem představované řetězcem, které je výsledkem úpravy "výrazu_typu_řetězec" na nulové referenční časové pásmo UTC známé jako čas GMT. Poznámka: výstup lze zkrátit pomocí funkce makra timestampMask (). toUTC ( výraz_typu_řetězec ) Příklad: # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Výsledek: 2005-11-01 17:00:00.000000000-00:00 Příklad: # timestampMask( toUTC ( '2005-11-01 12:00:00.000-05:00' ) ; 'yyyy-mm-dd hh:mm:ss.ff3+hh:mm' ) # Výsledek: 2005-11-01 17:00:00.000-00:00 Příklad: # toUTC ( $current_timestamp ) # Výsledek: 2005-11-01 17:00:00.000000000-00:00 Odstraní z pole duplicitní položky. Pořadí prvků zůstane zachováno. unique ( výraz_typu_pole ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Výsledek: 's3'; 'a'; 'x' Kóduje předávaný argument jako adresu URL. Tato funkce je užitečná při zadávání připojovacích řetězců XML. urlencode ( prompt ( 'uživatelskáHodnota' ) ) urlencode ( prompt ( 'nějaká_hodnota' ) ) %27testovacíHodnota%27 simple case Tato syntaxe příkazu makra je šablonou pro jednoduchý příkaz case, která obsahuje funkce case, when, then, else a end. Tato konstrukce makra je podporována pouze v režimu DQM. CASE <výraz> WHEN <literál> THEN <výraz> [ELSE <výraz>] END Příklad: #CASE prompt('pDateRange','token') WHEN 'Current Week' THEN '[PR Current Week]' ELSE '[PR Prior Week]' END# Výsledek: [PR Current Week]
Blokové funkce Tento seznam obsahuje funkce používané pro přístup ke členům sady, obvykle v kontextu produktu Analysis Studio. Vrací první členy nalezené v sadě až po "maximum_výrazu_typu_číslo" + "přetečení_výrazu_typu_číslo". Je-li překročeno "maximum_výrazu_typu_číslo" + "přetečení_výrazu_typu_číslo", vrací se pouze maximální počet členů. Pro sadu, která má pouze o několik členů víc než určené maximum_výrazu_typu_číslo, umožňuje přetečení_výrazu_typu_číslo zahrnutí malé sady členů navíc. Obsahuje-li sada více členů než umožňuje přetečení, bude vráceno pouze maximum_výrazu_typu_číslo členů. _firstFromSet ( výraz_sady ; maximum_výrazu_typu_číslo ; přetečení_výrazu_typu_číslo ) _firstFromSet ( [great_outdoors_company].[Products].[Products].[Product line] ; 2 ; 8 ) Výsledek: Vrací pět členů v sadě Produktová řada. První dva členy jsou vráceny v rámci daného maxima a následující tři členy jsou vráceny jako přetečení. Tábornické vybavení Golfové vybavení Horolezecké vybavení Venkovní ochrana Osobní potřeby _firstFromSet ( [great_outdoors_company].[Products].[Products].[Product line] ; 2 ; 2 ) Výsledek: Tábornické vybavení, Golfové vybavení Vrací sadu obsahující "výraz_členu", když je velikost "výrazu_sady" větší než "výraz_typu_číslo"; tj. nový člen bude generován v případě, že počet členů ve "výrazu_sady" je větší než určený "výraz_typu_číslo". _remainderSet ( výraz_členu; výraz_sady ; výraz_typu_číslo ) _remainderSet ( member ( aggregate ( currentMeasure within set [great_outdoors_company].[Products].[Products].[Product line] ) ; 'Agregace produktů' ; 'Agregace produktů' ; [great_outdoors_company].[Products].[Products] ) ; [great_outdoors_company].[Products].[Products].[Product line] ; 1 ) Výsledek: Prodané množství pro Produktovou agregaci