Funzioni specifiche per il fornitore Costanti Una costante è un valore fisso che può essere utilizzato in un'espressione. Operatori Gli operatori specificano cosa succede ai valori che li precedono e li seguono. Gli operatori sono simili a delle funzioni, nel senso che manipolano degli elementi dati per produrre un risultato. data Inserisce la data corrente del sistema. data/ora Inserisce data e ora correnti del sistema. orario con fuso orario Inserisce un orario composto da zeri con il fuso orario. timestamp con fuso orario Inserisce un esempio di timestamp con il fuso orario. Inserisce un valore falso. intervallo Inserisce un intervallo di zeri: 000 00:00:00.000. intervallo anno Inserisce un intervallo anno composto da zeri: 0 anno. intervallo mese Inserisce un intervallo mese composto da zeri: 0 mese. intervallo anno-mese Inserisce un intervallo anno-mese composto da zeri: 0000-00 anno-mese. intervallo giorno Inserisce un intervallo in giorni composto da zeri: 0 giorno. intervallo ora Inserisce un intervallo ora composto da zeri: 0 ora. intervallo minuto Inserisce un intervallo minuti composto da zeri: 0 minuto. intervallo secondo Inserisce un intervallo secondi composto da zeri: 0 secondo. intervallo giorno-ora Inserisce un intervallo giorno-ora composto da zeri: 0 00 giorno-ora. intervallo giorno-minuto Inserisce un intervallo giorno-minuto composto da zeri: 0 00:00 giorno-minuto. intervallo giorno-secondo Inserisce un intervallo giorno-secondi composto da zeri: 0 00:00:00.000000000 giorno-secondo. intervallo ora-minuto Inserisce un intervallo ora-minuto composto da zeri: 0 00:00 ora-minuto. intervallo ora-secondo Inserisce un intervallo ora-secondo composto da zeri: 0 00:00:00.000000000 ora-secondo. intervallo minuto-secondo Inserisce un intervallo minuto-secondo composto da zeri: 0 00:00.000000000 minuto-secondo. Inserisce un valore "null" se le condizioni dell'espressione non vengono soddisfatte. numero Inserisce il valore 0, che può essere sostituito da un nuovo valore numerico. stringa Inserisce una stringa vuota sotto forma di due virgolette singole all'interno delle quali è possibile digitare una stringa. ora Inserisce l'ora corrente del sistema. Inserisce un valore vero.
Identifica l'inizio di un'espressione. ( expression ) Identifica la fine di un'espressione. ( expression ) Moltiplica due valori numerici. valore1 * valore2 , Separa i componenti dell'espressione. expression ( parameter1; parameter2 ) Divide due valori numerici. valore1 / valore2 Concatena o unisce le stringhe. stringa1 || stringa2 Somma due valori numerici. valore1 + valore2 Sottrae due valori numerici o rende negativo un valore numerico. valore1 - valore2 o - valore Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori inferiori a "valore2". valore1 < valore2 Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori inferiori o uguali a "valore2". valore1 <= valore2 Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori non uguali a "valore2". valore1 <> valore2 Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori uguali a "valore2". valore1 = valore2 Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori superiori a "valore2". valore1 > valore2 Separa i componenti di un'espressione del membro a valore letterale. [spazio dei nomi].[dimensione].[gerarchia].[livello]->[L1] Confronta tra loro i valori rappresentati da "valore1" e "valore2" e recupera i valori superiori o uguali a "valore2". valore1 >= valore2 Restituisce il valore "true" se le condizioni di entrambi i lati dell'espressione sono vere. argomento1 and argomento2 Utilizzato con le espressioni di riepilogo per definire l'ambito da adattare in base alle colonne di raggruppamento nella query. L'ambito dipende dal contesto. aggregate_function ( expression AUTO ) Stabilisce se un valore rientra in un determinato intervallo. espressione between valore1 and valore2 Esempio: [Ricavo] between 200 and 300 Risultato: restituisce il numero di risultati con entrate tra 200 e 300. Revenue Between ---- ---- $332.06 false $230.55 true $107.94 false Utilizzato con when, then, else ed end. L'operatore Case identifica l'inizio di una specifica situazione, in cui sono definite le azioni when, then ed else. case expression { when expression then expression } [ else expression ] end Determina se la "stringa1" contiene la "stringa2". Questa sintassi supporta entrambi i metacaratteri: il segno di percentuale (%) rappresenta zero, uno o più caratteri e il segno di sottolineatura (_) rappresenta qualsiasi carattere. La parola chiave LITERAL opzionale indica come '%' e '_' sono interpretati. Quando la parola chiave LITERAL è presente, '%' e '_' non devono essere considerati come metacaratteri (vedi Esempio 3 e 5). Altrimenti, in assenza della parola chiave LITERAL, '%' e '_' si comportano come metacaratteri (vedi Esempio 1, 2 e 4). string1 contiene [LITERAL] string2 Esempio 1: [PRODUCT_LINE] contiene 'door' Risultato 1: Attrezzature Outdoor Esempio 2: [PRODUCT_LINE] contiene 'Golf%' Risultato 2: Attrezzatura da golf Esempio 3: [PRODUCT_LINE] contiene il valore letterale 'Golf%' Risultato 3: Golf% Esempio 4: [PRODUCT_LINE] contiene 'Current_Year%' Risultato 4: Prezzi dell'anno corrente, Prezzo attuale%, Prezzo% dell'anno corrente. Esempio 5: [PRODUCT_LINE] contiene il valore letterale 'Current_Year%' Risultato 5: Current_Year%. Parola chiave che è possibile utilizzare come primo argomento delle funzioni di riepilogo dei membri. Questa funzione compare nel report di esempio Entrate totali per paese del package Data Warehouse GO (query). aggregate_function ( currentMeasure within set expression ) current_date Restituisce la data corrente del database. current_date Utilizzato con il costrutto lookup. lookup (....) in (....) default (....) Parola chiave utilizzata in un'espressione aggregata per includere solo occorrenze di valori distinte. Vedere anche la funzione Unique. distinct elemento dati Esempio: count ( distinct [OrderDetailQuantity] ) Risultato: 1704 Utilizzato con i costrutti if o case. Se la condizione if o l'espressione case non sono vere, viene utilizzata l'espressione else. Questa funzione appare nel report di esempio I dieci migliori rivenditori del 2005, nel package Data Warehouse GO (analysis). if ( condition ) then .... else ( expression ) ; or case .... else ( expression ) end Indica la fine di un costrutto case o when. case .... end Determina se la "stringa1" termina con "stringa2". Questa sintassi supporta entrambi i metacaratteri: il segno di percentuale (%) rappresenta zero, uno o più caratteri e il segno di sottolineatura (_) rappresenta qualsiasi carattere. La parola chiave opzionale LITERAL indica come '%' and '_' sono interpretati. Quando la parola chiave LITERAL è presente, '%' e '_' non devono essere considerati come metacaratteri (vedi Esempio 3 e 5). Altrimenti, in assenza della parola chiave LITERAL, '%' e '_' si comportano come metacaratteri (vedi Esempio 1, 2 e 4). string1 termina con [LITERAL] string2 Esempio 1: [PRODUCT_LINE] termina con 'Equipment' Risultato 1: Attrezzatura da campeggio, Attrezzatura da golf Esempio 2: [PRODUCT_LINE] termina con '%Equipment' Risultato 2: Attrezzatura Golf, Equipaggiamento Camping Esempio 3: [PRODUCT_LINE] termina con il valore letterale 'Equipment%' Risultato 3: Attrezzatura% Esempio 4: [PRODUCT_LINE] termina con '%Price' Risultato 4: Prezzo prodotto, Prezzo anno corrente Esempio 5: [PRODUCT_LINE] termina con il valore letterale '%Price' Risultato 5: %Price Determina se la "stringa1" corrisponde al modello di "stringa2", con il carattere "char" utilizzato facoltativamente come funzione di escape dei caratteri nella stringa del modello. stringa1 LIKE stringa2 [ ESCAPE char ] Esempio: [LINEA_PRODOTTO] like 'G%' Risultato: tutte le linee di progetto che incominciano con 'G'. Esempio: [LINEA_PRODOTTO] like '%Ga%' escape 'a' Risultato: tutte le linee di prodotto che terminano con 'G%'. Utilizzato con le espressioni di riepilogo per definire l'ambito dell'aggregazione nella query. aggregate_function ( expression for expression { ; expression } ) Utilizzato con le espressioni di riepilogo per definire l'ambito da regolare in base a un sottoinsieme delle colonne di raggruppamento nella query. Equivalente alla clausola for. aggregate_function ( expression for ANY expression { ; expression } ) Utilizzato con le espressioni di riepilogo per definire tutte le colonne di raggruppamento specificate nella query come ambito. Vedere anche la clausola for. aggregate_function ( expression for ALL expression { ; expression } ) Utilizzato con le espressioni di riepilogo per definire l'intera query come ambito. Vedere anche la clausola for. Questa funzione compare nel report di esempio Resi e soddisfazione del cliente del package Data Warehouse GO (analysis). aggregate_function ( expression for report ) Utilizzato con i costrutti then ed else. Definisce una condizione; quando la condizione if è vera, viene utilizzata l'espressione then. Quando la condizione if non è vera, viene utilizzata l'espressione else. Questa funzione appare nel report di esempio I dieci migliori rivenditori del 2005, nel package Data Warehouse GO (analysis). if ( condition ) then ( expression ) else ( expression ) Determina se "expression1" esiste in un determinato elenco di espressioni. expression1 in ( expression_list ) Determina se "expression1" esiste all'interno di un dato elenco di intervalli o valori costanti. expression1 in_range { constant : constant [ ; constant : constant ] } Esempio: [codice] in_range { 5 } Risultato: equivalente a [codice] = 5. Esempio: [codice] in_range { 5: } Risultato: equivalente a [codice] >= 5. Esempio: [codice] in_range { :5 } Risultato: equivalente a [codice] <= 5. Esempio: [codice] in_range { 5:10 } Risultato: equivalente a ( [codice] >= 5 e [codice] <= 10 ). Esempio: [codice] in_range { :5;10;20: } Risultato: equivalente a ( [codice] <= 5 o [codice] = 10 o [codice] >= 20 ). Determina se "valore" non è definito nei dati. valore is missing Determina se "valore" non è definito nei dati. valore is null Determina se "valore" è definito nei dati. valore is not missing Determina se "valore" è definito nei dati. valore is not null Determina se la "stringa1" corrisponde al modello di "stringa2", con il carattere "char" utilizzato facoltativamente come funzione di escape dei caratteri nella stringa del modello. Questa sintassi supporta entrambi i metacaratteri: il segno di percentuale (%) rappresenta zero, uno o più caratteri e il segno di sottolineatura (_) rappresenta qualsiasi carattere. stringa1 LIKE stringa2 [ ESCAPE char ] Esempio 1: [PRODUCT_LINE] come 'G%' Risultato 1: tutte le linee di progetto che incominciano con 'G'. Esempio 2: [PRODUCT_LINE] come '%Ga%' escape 'a' Risultato 2: tutte le linee di prodotto che terminano con 'G%'. Esempio 3: [PRODUCT_LINE] like 'C_R_' Risultato 3: tutte le linee di prodotti con il nome CARS o CARD. Esempio: lookup ( [Paese]) in ( 'Canada'-->( [Prezzo di listino] * 0,60); 'Australia'-->( [Prezzo di listino] * 0,80 ) ) default ( [Prezzo di listino] ) Trova e sostituisce i dati con un valore specificato. È preferibile utilizzare il costrutto case. lookup ( nome ) in ( valore1 --> valore2 ) default ( espressione ) Restituisce TRUE se "argomento" è un valore falso; restituisce FALSE se "argomento" ha un valore vero. Argomento NOT Restituisce TRUE se "argomento1" o "argomento2" hanno un valore vero. argomento1 or argomento2 Esegue un calcolo di riepilogo prima di applicare il filtro di riepilogo. summary_function ([expression] prefilter) Esempio: total ( [Quantity] for report prefilter ) summaryFilter: total( [Quantity] for [ProductNo] ) > 50000 Risultato: somma le quantità in un report prima che venga applicato il filtro di riepilogo. 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 Conta il numero di righe nell'output della query. Da utilizzare con Count(). count ( ROWS ) Conta il numero di righe nell'output della query. Da utilizzare con Count(). count ( ROWS  [ espressione ]) Determina se "stringa1" inizia con "stringa2". Questa sintassi supporta entrambi i metacaratteri: il segno di percentuale (%) rappresenta zero, uno o più caratteri e il segno di sottolineatura (_) rappresenta qualsiasi carattere. La parola chiave LITERAL opzionale indica come '%' e '_' sono interpretati. Quando la parola chiave LITERAL è presente, '%' e '_' non devono essere considerati come metacaratteri (vedi Esempio 3 e 5). Altrimenti, in assenza della parola chiave LITERAL, '%' e '_' si comportano come metacaratteri (vedi Esempio 1, 2 e 4). string1 inizia con [LITERAL] string2 Esempio 1: [PRODUCT_LINE] inizia con 'Golf' Risultato 1: Attrezzatura da golf Esempio 2: [PRODUCT_LINE] inizia con 'Outdoor%' Risultato 2: Attrezzature Outdoor Esempio 3: [PRODUCT_LINE] inizia con il valore letterale 'Golf%' Risultato 3: Golf% Esempio 4: [PRODUCT_LINE] inizia con 'Current_Year%' Risultato 4: Prezzi dell'anno corrente, Prezzo attuale%, Prezzo% dell'anno corrente% Esempio 5: [PRODUCT_LINE] inizia con il valore letterale 'Current_Year%' Risultato 5: Current_Year% Utilizzato con i costrutti if o case. Se la condizione if o l'espressione when hanno un valore vero, si utilizza l'espressione then. Questa funzione appare nel report di esempio I dieci migliori rivenditori del 2005, nel package Data Warehouse GO (analysis). if ( condition ) then ...; or case expression when expression then .... end Utilizzato con il costrutto case. È possibile definire le condizioni che devono verificarsi quando l'espressione WHEN è vera. case [expression] when ... end
Riepiloghi Questo elenco contiene funzioni predefinite che restituiscono un solo valore di riepilogo per un gruppo di valori correlati o un diverso valore di riepilogo per ogni istanza di un gruppo di valori correlati. Restituisce un valore calcolato utilizzando la funzione di aggregazione appropriata, in base al tipo di aggregazione dell'espressione. Questa funzione compare nel report di esempio Budget rispetto a risultati effettivi del package Data Warehouse GO (analysis). aggregate ( expression [ auto ] ) aggregate ( expression for [ all|any ] expression { ; expression } ) aggregate ( expression for report ) Restituisce il valore medio degli elementi di dati selezionati. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. average ( [ distinct ] expression [ auto ] ) average ( [ distinct ] expression for [ all|any ] expression { ; expression } ) average ( [ distinct ] expression for report ) Esempio: average ( Vendite ) Risultato: restituisce la media di tutti i valori relativi alle Vendite. Restituisce il numero degli elementi dati selezionati escludendo i valori null. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. All è supportato solo in modalità DQM ed evita la supposizione di conteggiare due volte un elemento dati in una tabella della dimensione. count ( [ all | distinct ] expression [ auto ] ) count ( [ all | distinct ] expression for [ all|any ] expression { ; expression } ) count ( [ all | distinct ] expression for report ) Esempio: count ( Vendite ) Risultato: restituisce il numero totale delle voci in Vendite. Restituisce il valore massimo degli elementi dati selezionati. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. maximum ( [ distinct ] expression [ auto ] ) maximum ( [ distinct ] expression for [ all|any ] expression { ; expression } ) maximum ( [ distinct ] expression for report ) Esempio: maximum ( Vendite ) Risultato: restituisce il valore massimo di tutti i valori relativi alle Vendite. Restituisce la mediana degli elementi di dati selezionati. median ( expression [ auto ] ) median ( expression for [ all|any ] expression { ; expression } ) median ( expression for report ) Restituisce il valore minimo degli elementi dati selezionati. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. minimum ( [ distinct ] expression [ auto ] ) minimum ( [ distinct ] expression for [ all|any ] expression { ; expression } ) minimum ( [ distinct ] expression for report ) Esempio: minimum ( Vendite ) Risultato: restituisce il valore minimo di tutti i valori relativi alle Vendite. Restituisce una media mobile per riga per un set di valori specificato di un numero di righe specificato. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. moving-average ( numeric_expression ; numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) moving-average (  numeric_expression ; numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: moving-average ( Qtà ; 3 ) Risultato: per ogni riga restituisce la quantità e la media mobile della riga corrente e delle due righe precedenti. Qty Moving-Average (Qty, 3) ------ ------------------------------------ 200 200 700 450 400 433.3333 200 433.3333 200 266.6667 500 300.0000 Restituisce un totale mobile per riga per un set di valori specificato di un numero di righe specificato. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. moving-total ( numeric_expression ; numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) moving-total (  numeric_expression ; numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: moving-total ( Qtà ; 3 ) Risultato: per ogni riga restituisce la quantità e il totale mobile della riga corrente e delle due righe precedenti. Qty Moving-Total (Qty, 3) ------ -------------------------------- 200 200 700 900 400 1300 200 1300 200 800 500 900 Restituisce la percentuale del valore totale per gli elementi dati selezionati. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. Questa funzione appare nel report di esempio interattivo Calcolo percentuale (per anno). percentage ( numeric_expression [ at expression  { ; expression } ] [ <for-option> ] [ prefilter ] ) percentage (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: percentage ( Vendite 98 ) Risultato: restituisce la percentuale delle vendite totali per il 1998 attribuita a ogni rappresentante vendite. Employee Sales 98 Percentage --------- --------- ------------- Gibbons 60646 7.11% Flertjan 62523 7.35% Cornel 22396 2.63% Restituisce un valore, su una scala di cento, che indica la percentuale di una distribuzione uguale o inferiore agli elementi dati selezionati. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. percentile ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) percentile (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: percentile ( Vendite 98 ) Risultato: restituisce, per ciascuna riga, la percentuale di righe uguali o inferiori al valore della quantità contenuta nella riga. 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 Restituisce la classifica di un valore compreso in un intervallo specificato. Restituisce valori interi per rappresentare qualsiasi intervallo di valori, ad esempio da 1 (più elevato) a 100 (più basso). "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. quantile ( numeric_expression ; numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) quantile (  numeric_expression ; numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: quantile ( Qtà ; 4 ) Risultato: restituisce la quantità, la classifica del valore di quantità e i valori di quantità scomposti in 4 gruppi di quantili (quartili). 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 Restituisce la classifica di un valore rappresentato come numeri interi da 1 (massimo) a 4 (minimo), relativo a un gruppo di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. quartile ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) quartile (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: quartile ( Qtà ) Risultato: restituisce la quantità e il quartile del valore relativo alla quantità rappresentato come numeri interi da 1 (massimo) a 4 (minimo). Qty Quartile (Qty) ------ --------------------- 450 1 400 1 350 2 300 2 250 3 200 3 150 4 100 4 Restituisce il valore di classifica degli elementi dati selezionati. Il criterio di ordinamento è facoltativo; il valore predefinito è DESC (ordine decrescente). Se si uniscono due o più righe, viene creato uno spazio nella sequenza di valori allineati (definita anche classificazione olimpica). "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. I valori NULL vengono classificati per ultimi. Questa funzione appare nel report di esempio I dieci migliori rivenditori del 2005, nel package Data Warehouse GO (analysis). rank ( expression [ ASC|DESC ] { ; expression [ ASC|DESC ] } [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) rank ( [ distinct ] expression [ ASC|DESC ] { ; expression [ ASC|DESC ] } [ <for-option>] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: rank ( Vendite 98 ) Risultato: per ogni riga restituisce il valore della classifica delle vendite del 1998 attribuito a ciascun rappresentante delle vendite. Quando due colonne hanno lo stesso valore, alcuni numeri vengono saltati. Employee Sales 98 Rank --------- --------- ------------ Gibbons 60000 1 Flertjan 50000 2 Cornel 50000 2 Smith 48000 4 Restituisce la media corrente per riga (inclusa la riga corrente) per un set di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-average ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-average (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-average ( Qtà ) Risultato: per ogni riga restituisce la quantità e una media corrente delle righe correnti e precedenti. 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 Restituisce il conteggio corrente per riga (inclusa la riga corrente) per un set di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-count ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-count (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-count ( Qtà ) Risultato: per ogni riga viene restituita la quantità e il conteggio parziale della posizione della riga corrente. 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 Restituisce una differenza corrente per riga, calcolata come differenza tra il valore della riga corrente e quello della riga precedente (inclusa la riga corrente) per un set di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-difference ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-difference (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-difference ( Qtà ) Risultato: per ogni riga viene restituita la quantità e la differenza parziale tra il valore della riga corrente e quello della riga precedente. Name Qty Running-Difference for name ------- ------ --------------------------- Smith 7 NULL Smith 3 -4 Smith 6 3 Smith 4 -2 Wong 3 -1 Wong 5 2 Restituisce il massimo corrente per riga (inclusa la riga corrente) per un set valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-maximum (  numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-maximum (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-maximum ( Qtà ) Risultato: per ogni riga restituisce la quantità e un massimo corrente delle righe correnti e precedenti. 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 Restituisce il minimo corrente per riga (inclusa la riga corrente) per un set di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-minimum ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-minimum (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-minimum ( Qtà ) Risultato: per ogni riga restituisce la quantità e un minimo corrente delle righe correnti e precedenti. 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 Restituisce un totale corrente per riga (inclusa la riga corrente) per un set di valori. "<for-option>" definisce l'ambito della funzione. L'opzione "at" definisce il livello di aggregazione e può essere utilizzata solo nel contesto di origini dati relazionali. running-total ( numeric_expression [ at expression { ; expression } ] [ <for-option> ] [ prefilter ] ) running-total (  numeric_expression [ <for-option> ] [ prefilter ] ) <for-option> ::= for expression { ; expression }|for report|auto Esempio: running-total ( Qtà ) Risultato: per ogni riga restituisce la quantità e un totale corrente delle righe correnti e precedenti. 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 Restituisce la deviazione standard degli elementi dati selezionati. standard-deviation (  expression [ auto ] ) standard-deviation (  expression for [ all|any ] expression { ; expression } ) standard-deviation (  expression for report ) Esempio: standard-deviation ( CostoProdotto ) Risultato: Restituisce un valore che indica la deviazione tra i costi dei prodotti e il costo del prodotto medio. Calcola la deviazione standard della popolazione e restituisce la radice quadrata della varianza della popolazione. standard-deviation-pop (  expression [ auto ] ) standard-deviation-pop (  expression for [ all|any ] expression { ; expression } ) standard-deviation-pop (  expression for report ) Esempio: standard-deviation-pop ( CostoProdotto ) Risultato: restituisce il valore della radice quadrata della varianza della popolazione. Calcola la deviazione standard di esempio e restituisce la radice quadrata della varianza della popolazione. standard-deviation-samp (  expression [ auto ] ) standard-deviation-samp (  expression for [ all|any ] expression { ; expression } ) standard-deviation-samp (  expression for report ) Esempio: standard-deviation-samp ( CostoProdotto ) Risultato: restituisce il valore della radice quadrata della varianza di esempio. Restituisce la classifica di un valore come High (alto), Middle (medio) o Low (basso) rispetto a un gruppo di valori. tertile (  expression [ auto ] ) tertile (  expression for [ all|any ] expression { ; expression } ) tertile (  expression for report ) Esempio: tertile ( Qtà ) Risultato: restituisce la quantità, il quantile della quantità scomposto in terzili e la quantità scomposta in terzili. Qty Quantile (Qty, 3) Tertile (Qty) ------ ------------------------ ------------------ 800 1 H 700 1 H 500 2 M 400 2 M 200 3 L 200 3 L Restituisce il valore totale degli elementi dati selezionati. Distinct è un'espressione alternativa, compatibile con le versioni precedenti del prodotto. Questa funzione compare nel report di esempio Budget rispetto a risultati effettivi del package Data Warehouse GO (analysis). total ( [ distinct ] expression [ auto ] ) total ( [ distinct ] expression for [ all|any ] expression { ; expression } ) total ( [ distinct ] expression for report ) Esempio: total ( Vendite ) Risultato: Restituisce il valore totale di tutti i valori relativi alle Vendite. Funzioni statistiche Questo elenco contiene funzioni di riepilogo predefinite di natura statistica. Restituisce la varianza degli elementi dati selezionati. variance (  expression [ auto ] ) variance (  expression for [ all|any ] expression { ; expression } ) variance (  expression for report ) Esempio: variance ( CostoProdotto ) Risultato: restituisce un valore che indica in che modo i costi dei prodotti variano rispetto al costo del prodotto medio. Restituisce la varianza della popolazione di un set di numeri dopo l'eliminazione dei valori NULL dal set. variance-pop (  expression [ auto ] ) variance-pop (  expression for [ all|any ] expression { ; expression } ) variance-pop (  expression for report ) Esempio: variance-pop ( Qtà ) Risultato: per ogni riga restituisce la varianza della popolazione di un set di numeri dopo l'eliminazione dei valori nulli dal set. Restituisce la varianza di esempio di un set di numeri dopo l'eliminazione dei valori null in tale set. variance-samp (  expression [ auto ] ) variance-samp (  expression for [ all|any ] expression { ; expression } ) variance-samp (  expression for report ) Esempio: variance-samp ( Qtà ) Risultato: per ciascuna riga, restituisce la varianza di esempio di un set di numeri dopo l'eliminazione dei valori null in tale set. corr ( numeric_expression1 ;  numeric_expression2  [ auto ] ) corr ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) corr ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il coefficiente di correlazione di un set di coppie di numeri. Viene calcolato come segue: COVAR_POP(numeric_expression1, numeric_expression2) / (STDDEV_POP(numeric_expression1) * STDDEV_POP(numeric_expression2)) Esempio: corr ( Costo ;  Margine  for report) Risultato: il coefficiente di correlazione tra Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) covariance-pop ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) covariance-pop ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce la covarianza della popolazione di un set di coppie di numeri. Esempio: covariance-pop ( Costo ;  Margine  for report) Risultato: la covarianza della popolazione tra Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) covariance-samp ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) covariance-samp ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce la covarianza di esempio di un set di coppie di numeri. Esempio: covariance-samp ( Costo ;  Margine  for report) Risultato: la covarianza di esempio tra Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-average-x ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-average-x ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce la media della variabile indipendente (numeric_expression2) della linea di regressione. Esempio: regression-average-x ( Costo ;  Margine  for report) Risultato: la media di Margine all'interno della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-average-y ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-average-y ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce la media della variabile dipendente (numeric_expression1) della linea di regressione. Esempio: regression-average-y ( Costo ;  Margine  for report) Risultato: la media di Costo all'interno della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-count ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-count ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il numero di numeri non null utilizzati per adattare la linea di regressione. Esempio: regression-count ( Costo ;  Margine  for report) Risultato: il numero di numeri non null utilizzati per adattare la linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-intercept ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-intercept ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce l'intersezione y della linea di regressione. Viene calcolato come segue: AVG(numeric_expression1) - REGR_SLOPE(numeric_expression1, numeric_expression2) * AVG(numeric_expression2) Esempio: regression-intercept ( Costo ;  Margine  for report) Risultato: l'intersezione y della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-r2 ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-r2 ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il coefficiente di determinazione (definito anche "R-quadro" o "indice di bontà") della linea di regressione. Questo valore viene calcolato in base alle seguenti condizioni: IF VAR_POP(numeric_expression2) = 0 THEN NULL IF VAR_POP(numeric_expression1) = 0 AND VAR_POP(numeric_expression2) <> 0 THEN 1 IF VAR_POP(numeric_expression1) > 0 and VAR_POP(numeric_expression2) <> 0 THEN POWER(CORR (numeric_expression1, numeric_expression2)) Esempio: regression-r2 ( Costo ;  Margine  for report) Risultato: il coefficiente di determinazione della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-slope ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-slope ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce l'inclinazione della linea di regressione. Viene calcolato come segue: COVAR_POP(numeric_expression1,numeric_expression2) / VAR_POP(numeric_expression2) Esempio: regression-slope ( Costo ;  Margine ) Risultato: l'inclinazione della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-sxx ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-sxx ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il seguente calcolo dopo l'eliminazione delle coppie NULL: REGR_COUNT(numeric_expression1, numeric_expression2) * VAR_POP(numeric_expression2) Esempio: regression-sxx ( Costo ;  Margine  for report) Risultato: il calcolo sxx della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-sxy ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-sxy ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il seguente calcolo dopo l'eliminazione delle coppie NULL: REGR_COUNT(numeric_expression1, numeric_expression2) * COVAR_POP(numeric_expression1, numeric_expression2) Esempio: regression-sxy ( Costo ;  Margine  for report) Risultato: il calcolo sxy della linea di regressione per Costo e Margine. 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 ( numeric_expression1 ;  numeric_expression2 ) regression-syy ( numeric_expression1 ;  numeric_expression2 for [ all|any ] expression { ; expression } ) regression-syy ( numeric_expression1 ;  numeric_expression2 for report ) Restituisce il seguente calcolo dopo l'eliminazione delle coppie NULL: REGR_COUNT(numeric_expression1, numeric_expression2) * VAR_POP(numeric_expression1) Esempio: regression-syy ( Costo ;  Margine  for report) Risultato: il calcolo syy della linea di regressione per Costo e Margine. 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 Riepiloghi membri Questo elenco contiene funzioni predefinite che restituiscono un solo valore di riepilogo per un set di membri o un diverso valore di riepilogo per ogni membro di un set di membri.
Errore È stato rilevato un errore nel token evidenziato dell'espressione.
Costrutti Questo elenco contiene i costrutti e i modelli che è possibile utilizzare per creare un'espressione. I modelli combinano più funzioni in un gruppo. Il modello search case, ad esempio, include le funzioni case, when, else ed end. search case Questo costrutto è il modello per un search case, incluse le funzioni CASE, WHEN, ELSE ed END. CASE WHEN [Paese] = 'Canada' THEN ([Prezzo listino] * 0,60) WHEN [CountryCode] > 100 THEN [Prezzo listino] * 0,80 ELSE [Prezzo listino] END simple case Questo costrutto è il modello per un simple case, incluse le funzioni CASE, WHEN, ELSE ed END. CASE [Paese] WHEN 'Canada' THEN ([Prezzo listino] * 0,60) WHEN 'Australia' THEN [Prezzo listino] * 0,80 ELSE [Prezzo listino] END if then else Questo costrutto è il modello di un'istruzione if...then...else. Questo funzione appare nel report di esempio I dieci migliori rivenditori del 2005, nel package GO Data Warehouse (analysis). IF ([Paese] = 'Canada') THEN ([Prezzo listino] * 0,60) ELSE (Prezzo listino]) in_range Si tratta del modello per un'espressione in_range. [codice] IN_RANGE { :30 ; 40, 50, 999: } Esempio: [codice] IN_RANGE { 5 } Risultato: equivalente a [codice] = 5. Esempio: [codice] IN_RANGE { 5: } Risultato: equivalente a [codice] >= 5. Esempio: [codice] IN_RANGE { :5 } Risultato: equivalente a [codice] <= 5. Esempio: [codice] IN_RANGE { 5:10 } Risultato: equivalente a ( [codice] >= 5 e [codice] <= 10 ). Esempio: [codice] IN_RANGE { :5;10;20: } Risultato: equivalente a ( [codice] <= 5 o [codice] = 10 o [codice] >= 20 ).
Predicati del periodo Questo elenco contiene i predicati che possono essere utilizzati per confrontare le espressioni del periodo. contiene Restituisce "true" se "period_expression1" contiene "period_expression2"; che è, "true" viene restituito se il primo periodo contiene il valore data/ora o tutti i valori contenuti nel secondo periodo. period_expression1 contiene ( period_expression2 | datetime_expression ) period( 1989-11-01, 1991-05-19 ) contains period( 1991-05-19, 1991-06-04 ) Risultato: false period( 1989-11-01, 1991-05-19 ) contains period( 1990-05-19, 1991-04-04 ) Risultato: true period( 1989-11-01, 1991-05-19 ) contains 1991-04-04 Risultato: true equals Restituisce "true" se "period_expression1" e "period_expression2" hanno lo stesso valore di inizio e fine del periodo. period_expression1 equals period_expression2 period( 1989-11-01, 1991-05-19 ) equals period( 1989-11-01, 1991-05-19 ) Risultato: true immediately precedes Restituisce "true" se "period_expression1" precede immediatamente "period_expression2"; ovvero, il valore finale del primo periodo è uguale al valore iniziale del secondo periodo. period_expression1 immediately precedes period_expression2 period( 1989-11-01, 1991-05-19 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Risultato: true period( 1989-11-01, 1991-05-18 ) immediately precedes period( 1991-05-19, 1991-06-04 ) Risultato: false immediately succeeds Restituisce "true" se "period_expression1" segue immediatamente "period_expression2"; ovvero, il valore iniziale del primo periodo è uguale al valore finale del secondo periodo. period_expression1 immediately succeeds period_expression2 period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-19, 1991-05-19 ) Risultato: true period( 1991-05-19, 1994-01-10 ) immediately succeeds period( 1991-01-20, 1991-05-18 ) Risultato: false overlaps Restituisce "true" se "period_expression1" si sovrappone a "period_expression2"; ovvero hanno almeno un valore in comune. period_expression1 overlaps period_expression2 period( 1991-05-19, 1994-01-10 ) overlaps period( 1993-01-19, 1995-05-19 ) Risultato: true precedes Restituisce "true" se "period_expression1" è precedente a "period_expression2"; ovvero, tutti i valori contenuti nel primo periodo sono minori o uguali al valore iniziale del secondo periodo. period_expression1 precedes period_expression2 period( 1989-11-01, 1991-05-19 ) precedes period( 1991-05-19, 1991-06-04 ) Risultato: true period( 1989-11-01, 1991-05-18 ) precedes period( 1991-05-19, 1991-06-04 ) Risultato: true succeeds Restituisce "true" se "period_expression1" è successivo a "period_expression2"; ovvero, tutti i valori contenuti nel primo periodo sono maggiori o uguali al valore finale del secondo periodo. period_expression1 succeeds period_expression2 period( 1991-05-19, 1994-01-10 ) succeeds period( 1991-01-19, 1991-05-19 ) Risultato: true period( 1991-05-20, 1994-01-10 ) succeeds period( 1991-01-20, 1991-05-19 ) Risultato: true
Funzioni data/ora Questo elenco contiene funzioni business per eseguire calcoli di data e ora. _add_seconds ( time_expression; integer_expression ) Restituisce l'ora o la data/ora, in base al formato di "time_expression", che risulta dall'aggiunta del numero di secondi "integer_expression" a "time_expression". Esempio: _add_seconds ( 13:04:59 ; 1 ) Risultato: 13:05:00 Esempio: _add_seconds ( 2002-04-30 12:10:10.000; 1 ) Risultato: 2002-04-30 12:10:11.000 Esempio: _add_seconds ( 2002-04-30 00:00:00.000; 1/100 ) Note that the second argument is not a whole number. È supportato da alcune tecnologie di database e incrementa le frazioni di tempo. Risultato: 2002-04-30 00:00:00.010 _add_minutes ( time_expression; integer_expression ) Restituisce l'ora o la data/ora, in base al formato di "time_expression", che risulta dall'aggiunta del numero di minuti "integer_expression" a "time_expression". Esempio: _add_minutes ( 13:59:00 ; 1 ) Risultato: 14:00:00 Esempio: _add_minutes ( 2002-04-30 12:59:10.000; 1 ) Risultato: 2002-04-30 13:00:10.000 Esempio: _add_minutes ( 2002-04-30 00:00:00.000; 1/60 ) Note that the second argument is not a whole number. È supportato da alcune tecnologie di database e incrementa le frazioni di tempo. Risultato: 2002-04-30 00:00:01.000 _add_hours ( time_expression; integer_expression ) Restituisce l'ora o la data/ora, in base al formato di "time_expression", che risulta dall'aggiunta del numero di ore "integer_expression" a "time_expression". Esempio: _add_hours ( 13:59:00 ; 1 ) Risultato: 14:59:00 Esempio: _add_hours ( 2002-04-30 12:10:10.000; 1 ) Risultato: 2002-04-30 13:10:10.000, Esempio: _add_hours ( 2002-04-30 00:00:00.000; 1/60 ) Note that the second argument is not a whole number. È supportato da alcune tecnologie di database e incrementa le frazioni di tempo. Risultato: 2002-04-30 00:01:00.000 _add_days ( date_expression; integer_expression ) Restituisce la data o la data/ora, a seconda del formato di "date_expression" risultante dall'aggiunta del numero di giorni "integer_expression" a "date_expression". Esempio: _add_days ( 2002-04-30 ; 1 ) Risultato: 2002-05-01 Esempio: _add_days ( 2002-04-30 12:10:10.000; 1 ) Risultato: 2002-05-01 12:10:10.000 Esempio: _add_days ( 2002-04-30 00:00:00.000; 1/24 ) notare come il secondo argomento non sia un numero intero. È supportato da alcune tecnologie di database e incrementa le frazioni di tempo. Risultato: 2002-04-30 01:00:00.000 _add_months ( date_expression; integer_expression ) Aggiunge i mesi "integer_expression" a "date_expression". Se il mese risultante contiene un numero di giorni minore del componente giorno del mese, viene restituito l'ultimo giorno del mese risultante. In tutti gli altri casi, il valore restituito ha lo stesso componente giorno del mese di "date_expression". Esempio: _add_months ( 2012-04-15 ; 3 ) Risultato: 2012-07-15 Il risultato non è l'ultimo giorno del mese risultante. Esempio: _add_months ( 2012-02-29 ; 1 ) Risultato: 2012-03-29 Utilizzare la funzione _last_of_month per restituire l'ultimo giorno del mese. Esempio: _last_of_month ( _add_months ( 2012-02-29 ; 1 ) ) Risultato: 2012-03-31 Il giorno viene regolato sull'ultimo giorno del mese risultante. Esempio: _add_months ( 2012-01-31 ; 1 ) Risultato: 2012-02-29 Aggiunta di un timestamp. Esempio: _add_months ( 2002-04-30 12:10:10.000 ; 1 ) Risultato: 2002-05-30 12:10:10.000 _add_years ( date_expression; integer_expression ) Aggiunge gli anni "integer_expression" a "date_expression". Se "date_expression" è 29 febbraio e l'anno risultante non è bisestile, il giorno risultante viene impostato sul 28 febbraio. In tutti gli altri casi il valore restituito ha lo stesso giorno e mese di "date_expression". Esempio: _add_years ( 2012-04-15 ; 1 ) Risultato: 2013-04-15 Il giorno 29 febbraio viene regolato per gli anni non bisestili. Esempio: _add_years ( 2012-02-29 ; 1 ) Risultato: 2013-02-28 Aggiunta di un timestamp. Esempio: _add_years ( 2002-04-30 12:10:10.000 ; 1 ) Risultato: 2003-04-30 12:10:10.000 _age ( date_expression ) Restituisce un numero ottenuto sottraendo "espressione_data" dalla data corrente. Il valore restituito è espresso nel formato YYYYMMDD, dove YYYY rappresenta il numero di anni, MM il numero di mesi e DD il numero di giorni. Esempio: _age ( 1990-04-30 ) (se la data odierna è 2003-02-05) Risultato: 120906, ovvero 12 anni, 9 mesi e 6 giorni. _date_to_int ( date_expression ) Restituisce la rappresentazione come numero intero di "date_expression". Il valore restituito è espresso nel formato YYYYMMDD, dove YYYY rappresenta il numero di anni, MM il numero di mesi e DD il numero di giorni. Esempio: _date_to_int ( 2003-01-01 ) Risultato: 20030101 _day_of_week ( date_expression; integer ) Restituisce il giorno della settimana (da 1 a 7), dove 1 è il primo giorno della settimana, come indicato dal secondo parametro (da 1 a 7, 1 corrisponde al lunedì e 7 alla domenica). Secondo lo standard ISO 8601, una settimana inizia con il lunedì, contrassegnato con il numero 1. Esempio: _day_of_week ( 2003-01-01 ; 1 ) Risultato: 3 _day_of_year ( date_expression ) Restituisce il giorno dell'anno (da 1 a 366) in "espressione_data". È noto anche come giorno giuliano. Esempio: _day_of_year ( 2003-03-01 ) Risultato: 61 _days_between ( date_expression1 ; date_expression2 ) Restituisce un numero positivo o negativo che rappresenta il numero di giorni compreso tra "date_expression1" ed "date_expression2". Se "date_expression1" < "date_expression2", viene restituito un numero negativo. Esempio: _days_between ( 2002-06-21 , 2002-04-30 ) Risultato: 52 Esempio: _days_between ( 2002-04-30 ; 2002-06-21 ) Risultato: -52 _days_to_end_of_month ( date_expression ) Restituisce un numero che rappresenta il numero di giorni rimanenti del mese indicato in "date_expression". Esempio: _days_to_end_of_month ( 2002-04-20 14:30:22.123 ) Risultato: 10 _first_of_month ( date_expression ) Restituisce una data o data/ora dipendente dall'argomento, ottenuta convertendo "date_expression" in una data con lo stesso anno e mese ma con il giorno impostato su 1. Esempio: _first_of_month ( 2002-04-20 ) Risultato: 2002-04-01 Esempio: _first_of_month ( 2002-04-20 12:10:10.000 ) Risultato: 2002-04-01 12:10:10.000 _last_of_month ( date_expression ) Restituisce una data o data/ora, in base all'argomento, corrispondente all'ultimo giorno del mese rappresentato da "date_expression". Esempio: _last_of_month ( 2002-01-14 ) Risultato: 2002-01-31 Esempio: _last_of_month ( 2002-01-14 12:10:10.000 ) Risultato: 2002-01-31 12:10:10.000 _make_timestamp ( integer_expression1; integer_expression2; integer_expression3 ) Restituisce un timestamp composto da "espressione1_numero_intero" (l'anno), "espressione2_numero_intero" (il mese) e "espressione3_numero_intero" (il giorno). Per impostazione predefinita, l'intervallo di tempo passa a 00:00:00.000. Esempio: _make_timestamp ( 2002 ; 01 ; 14 ) Risultato: 2002-01-14 00:00:00,000 _months_between ( date_expression1; date_expression2 ) Restituisce un numero positivo o negativo che rappresenta il numero di mesi che intercorrono tra "espressione1_data" e "espressione2_data". Se "espressione1_data" è antecedente a "espressione2_data", viene restituito un numero negativo. Esempio: _months_between ( 2002-04-03 ; 2002-01-30 ) Risultato: 2 Esempio: _months_between ( 2002-01-30 , 2002-04-03 ) Risultato: -2 _shift_timezone ( timestamp_value , from_time_zone , target_time_zone ) _shift_timezone ( timestamp_with_time_zone_value , target_time_zone ) Sposta un valore data/ora da un fuso orario ad un altro. Questa funzione rispetta l'ora legale quando applicabile. Se il primo argomento è di tipo "timestamp", il secondo e il terzo argomento rappresentano rispettivamente i fusi orari "da" e "di destinazione" . Se il primo argomento è di tipo "timestamp with time zone", il fuso orario "da" è già indicato nel primo argomento, quindi il secondo rappresenta il fuso orario "di destinazione". Il tipo di dati del primo argomento determinerà anche il tipo di dati del valore di ritorno. Il secondo e il terzo argomento sono di tipo "string" e rappresentano gli identificativi del fuso orario. È possibile trovare di seguito un elenco di questi identificativi. Nota: l'utilizzo di questa funzione genererà l'elaborazione locale. Esempio: _shift_timezone( 2013-06-30 12:00:00 , 'America/New_York' , 'GMT' ) Risultato: 2013-06-30 16:00:00 Esempio: _shift_timezone( 2013-11-30 12:00:00-05:00 , 'America/Vancouver' ) Risultato: 2013-11-30 09:00:00-08:00 Identificativi fuso orario: 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 È possibile utilizzare un identificativo del fuso orario personalizzato con il formato GMT+|-)HH:MM. Ad esempio, GMT-06:30 or GMT+02:00. _week_of_year ( date_expression ) Restituisce il numero della settimana dell'anno di "espressione_data" secondo lo standard ISO 8601. La settimana 1 dell'anno è la prima settimana dell'anno che contiene un giovedì, che equivale alla prima settimana che contiene il 4 gennaio. Una settimana inizia il lunedì (giorno 1) e finisce la domenica (giorno 7). Esempio: _week_of_year ( 2003-01-01 ) Risultato: 1 _years_between ( date_expression1; date_expression2 ) Restituisce un numero intero positivo o negativo che rappresenta il numero di anni compreso tra "date_expression1" ed "date_expression2". Se "date_expression1" < "date_expression2", viene restituito un valore negativo. Esempio: _years_between ( 2003-01-30 ; 2001-04-03 ) Risultato: 1 Esempio: _years_between ( 2001-04-03 , 2003-01-30 ) Risultato: -1 _ymdint_between ( date_expression1 ; date_expression2 ) Restituisce un numero che rappresenta la differenza tra "espressione1_data" e "espressione2_data". Il valore restituito è espresso nel formato YYYYMMDD, dove YYYY rappresenta il numero di anni, MM il numero di mesi e DD il numero di giorni. Esempio: _ymdint_between ( 1990-04-30 ; 2003-02-05 ) Risultato: 120905, che indica 12 anni, 9 mesi e 5 giorni. _year ( date_expression ) Restituisce il valore del campo year in "date_expression". Esempio: _year ( 2003-03-01 ) Risultato: 2003 _month ( date_expression ) Restituisce il valore del campo month in "date_expression". Esempio: _month ( 2003-03-01 ) Risultato: 3 _day ( date_expression ) Restituisce il valore del campo day in "date_expression". Esempio: _day ( 2003-03-01 ) Risultato: 1 _hour ( date_expression ) Restituisce il valore del campo hour in "date_expression". Esempio: _hour ( 2002-01-31 12:10:10.254 ) Risultato: 12 _minute ( date_expression ) Restituisce il valore del campo minute in "date_expression". Esempio: _minute ( 2002-01-31 12:10:10.254 ) Risultato: 10 _second ( date_expression ) Restituisce il valore del campo second in "date_expression". Esempio: _second ( 2002-01-31 12:10:10.254 ) Risultato: Result: _timezone_hour ( timestamp_with_time_zone_value ) _timezone_hour ( time_with_time_zone_value ) Restituisce il valore del campo orario fuso orario nell'espressione. L'espressione deve essere di tipo "timestamp con fuso orario" o "time con fuso orario". Esempio: _timezone_hour ( 2002-01-31 12:10:10.254-05:30 ) Risultato: -5 _timezone_minute ( timestamp_with_time_zone_value ) _timezone_minute ( time_with_time_zone_value ) Restituisce il valore del campo minuto del fuso orario nell'espressione. L'espressione deve essere di tipo "timestamp con fuso orario" o "time con fuso orario". Esempio: _timezone_minute ( 2002-01-31 12:10:10.254-05:30 ) Risultato: -30 _start_of_day ([ date_expression ]) Restituisce l'inizio di "date_expression" o l'inizio di oggi in formato data/ora Esempio: _start_of_day ( 2014-11-23 12:10:10.254 ) Risultato: 2014-11-23 00:00:00 Esempio: _start_of_day () Risultato: 2016-01-01 00:00:00 _end_of_day ([ date_expression ]) Restituisce la fine di "date_expression" o la fine di oggi in formato data/ora. Esempio: _end_of_day ( 2014-11-23 12:10:10.254 ) Risultato: 2014-11-23 23:59:59 Esempio: _end_of_day () Risultato: 2016-01-01 23:59:59 _unix_timestamp ( date_expression ) Restituisce il numero di secondi trascorsi da 1970-01-01 00:00:00-00 per il valore "date_expression" fornito. Esempio: _unix_timestamp ( 2014-11-23 ) Risultato: 1416718800 _from_unixtime ( integer_expression ) Restituisce il tempo unix specificato da "integer_expression" come timestamp con fuso orario. Esempio: _from_unixtime (1417807335) Risultato: 2014-12-05 19:22:15+00:00
Funzioni macro Questo elenco contiene funzioni che possono essere utilizzate all'interno di una macro. Una macro può contenere una o più funzioni macro. Una macro è delimitata da un segno numerico (#) all'inizio e alla fine. Tutti i dati inseriti tra i segni # vengono trattati come espressione della macro e quindi eseguiti in runtime. Per le funzioni macro che accettano espressioni del tipo di dati timestamp con il fuso orario come argomento, il formato ammesso è 'yyyy-mm-dd hh:mm:ss[.ff]+hh:mm', dove i secondi sono opzionali e possono essere rappresentati da cifre comprese tra 1 e 9. Per separare la componente data dalla componente tempo, oltre allo spazio è ammesso il carattere 'T'. Inoltre, al posto del fuso orario '+hh:mm' è ammesso il carattere 'Z', che verrà elaborato internamente come '+00:00'. Per impostazione predefinita, le funzioni macro che restituiscono espressioni di tipo di dati timestamp con fuso orario restituiscono 9 cifre per la parte relativa alle frazioni di secondo. La funzione macro timestampMask() può essere utilizzata per adeguare l'output, se necessario. Restituisce il timestamp con il fuso orario (come stringa) che risulta dall'aggiunta del numero di secondi "integer_expression" a "string_expression", dove "string_expression" rappresenta un timestamp con fuso orario. _add_seconds ( string_expression ; integer_expression ) Esempio: # _add_seconds ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2005-11-01 11:59:59.000-05:00 Esempio: # _add_seconds ( $current_timestamp ; 1 ) # Risultato: 2005-11-01 12:00:01.000000000-05:00 Esempio: # timestampMask ( _add_seconds ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Risultato: 12:00:01 Restituisce il timestamp con il fuso orario (come stringa) che risulta dall'aggiunta del numero di minuti "integer_expression" a "string_expression", dove "string_expression" rappresenta un timestamp con fuso orario. _add_minutes ( string_expression ; integer_expression ) Esempio: # _add_minutes ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2005-11-01 11:59:00.000-05:00 Esempio: # _add_minutes ( $current_timestamp ; 1 ) # Risultato: 2005-11-01 12:01:00.000000000-05:00 Esempio: # timestampMask ( _add_minutes ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Risultato: 12:01:00 Restituisce il timestamp con il fuso orario (come stringa) che risulta dall'aggiunta del numero di ore "integer_expression" a "string_expression", dove "string_expression" rappresenta un timestamp con fuso orario. _add_hours ( string_expression ; integer_expression ) Esempio: # _add_hours ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2005-11-01 13:00:00.000-05:00 Esempio: # _add_hours ( $current_timestamp ; 1 ) # Risultato: 2005-11-01 13:00:00.000000000-05:00 Esempio: # timestampMask ( _add_hours ( $current_timestamp ; 1 ) ; 'hh:mm:ss' ) # Risultato: 13:00:00 Restituisce la data/ora con il fuso orario (come una stringa) che risulta dall'aggiunta del numero "integer_expression" di giorni a "string_expression", in cui "string_expression" rappresenta una data/ora con fuso orario. Quando il primo argomento è una data, specificata come una stringa con formato: yyyy-mm-dd, il valore di ritorno è una stringa formattata come una data. _add_days ( string_expression ; integer_expression ) Esempio: # _add_days ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2005-10-31 12:00:00.000000000-05:00 Esempio: # _add_days ( $current_timestamp ; 1 ) # Risultato: 2005-11-02 12:00:00.000000000-05:00 Esempio: # timestampMask ( _add_days ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Risultato: 2005-11-02 Esempio: # _add_days( '2019-11-14' , 3 ) # Risultato: 17-11-2019 Restituisce la data/ora con il fuso orario (come una stringa) che risulta dall'aggiunta del numero "integer_expression" di mesi a "string_expression", in cui "string_expression" rappresenta una data/ora con fuso orario. Quando il primo argomento è una data, specificata come una stringa con formato: yyyy-mm-dd, il valore di ritorno è una stringa formattata come una data. _add_months ( string_expression ; integer_expression ) Esempio: # _add_months ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2005-10-01 12:00:00.000000000-05:00 Esempio: # _add_months ( $current_timestamp ; 1 ) # Risultato: 2005-12-01 12:00:00.000000000-05:00 Esempio: # timestampMask ( _add_months ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Risultato: 2005-12-01 Esempio: # _add_months( '2019-11-14' , -1 ) # Risultato: 14-10-2019 Restituisce la data/ora con il fuso orario (come una stringa) che risulta dall'aggiunta del numero "integer_expression" di anni a "string_expression", in cui "string_expression" rappresenta una data/ora con fuso orario. Quando il primo argomento è una data, specificata come una stringa con il formato: yyyy-mm-dd, il valore di ritorno è una stringa formattata come una data. _add_years ( string_expression ; integer_expression ) Esempio: # _add_years ( '2005-11-01 12:00:00.000-05:00' ; -1 ) # Risultato: 2004-11-01 12:00:00.000000000-05:00 Esempio: # _add_years ( $current_timestamp ; 1 ) # Risultato: 2006-11-01 12:00:00.000000000-05:00 Esempio: # timestampMask ( _add_years ( $current_timestamp ; 1 ) ; 'yyyy-mm-dd' ) # Risultato: 2006-11-01 Esempio: # _add_years( '2019-11-14' , -2 ) # Risultato: 14-11-2019 _first_of_month ( string_expression ) Restituisce un timestamp con fuso orario (in formato stringa) che converte in 1 il giorno di "string_expression", dove "string_expression" è un timestamp con fuso orario. Esempio: # _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Risultato: 2005-11-01 12:00:00.000000000-05:00 Esempio: # timestampMask ( _first_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyymmdd' ) # Risultato: 20051101 _last_of_month ( string_expression ) Restituisce un timestamp con fuso orario (in formato stringa) che corrisponde all'ultimo giorno del mese rappresentato da "string_expression", dove "string_expression" è un timestamp con fuso orario. Esempio: # _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) # Risultato: 2005-11-30 12:00:00.000000000-05:00 Esempio: # timestampMask ( _last_of_month ( '2005-11-11 12:00:00.000-05:00' ) ; 'yyyy-mm-dd' ) # Risultato: 2005-11-30 modelj ( 'identifier' [ , 'model_search_path' [ , 'options' ] ] ) Restituisce una parte del modello di metadati in formato json. Il modello corrente verrà utilizzato quando non è specificato 'model_search_path'. L'argomento 'options' può essere impostato su 'cleanup', ciò modifica alcune parti del risultato ai valori fissati (utile per l'esecuzione del test) sq ( modelj ( '[gosales].[country].[country]' ) Racchiude "string_expression" tra parentesi quadre. sb ( string_expression ) Esempio: # sb ( 'abc' ) # Risultato: [abc] Racchiude "string_expression" tra virgolette semplici. sq ( string_expression ) Esempio: # sq ( 'zero' ) # Risultato: 'zero' Racchiude "string_expression" tra virgolette doppie. dq ( string_expression ) Esempio: # dq ( 'zero' ) # Risultato: "zero" Utilizza le informazioni sull'identità dell'utente autenticato corrente per individuare i valori nella mappa dei parametri specificata. Ogni parte dell'identità dell'utente (nome account, nomi gruppo, nomi ruolo) viene utilizzata come chiave nella mappa. L'elenco univoco di valori recuperato dalla mappa dei parametri viene restituito come stringa, nella quale ogni valore è racchiuso tra virgolette semplici e più valori sono separati da virgole. CSVIdentityName ( %parameter_map_name [ ; separator_string ] ) Esempio: # CSVIdentityName ( %security_clearance_level_map ) # Risultato: 'livello_500' , 'livello_501' , 'livello_700' Restituisce le parti dell'identità dell'utente (nome account, nomi gruppo, nomi ruolo) come elenco di stringhe. L'elenco univoco di valori viene restituito come stringa, nella quale ogni valore è racchiuso tra virgolette semplici e più valori sono separati da virgole. CSVIdentityNameList ( [ separator_string ] ) Esempio: # CSVIdentityNameList ( ) # Risultato: 'Tutti' ; 'Amministratori di report' ; 'Utente query' Restituisce il passaporto Cognos® Access Manager. CAMPassport ( ) Esempio: # CAMPassport ( ) # Risultato: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321 Restituisce le parti del Cognos® Access Manager ID (CAMID) dell'utente (nome account, nomi gruppo o nomi ruolo) come elenco di valori separati da virgola. CAMIDList ( [ separator_string ] ) Esempio: #CAMIDList ( ) # Risultato: CAMID ( "::Everyone" ) , CAMID ( ":Authors" ) , CAMID ( ":Query Users" ) , CAMID ( ":Consumers" ) , CAMID ( ":Metrics Authors" ) Restituisce un array di Cognos® Access Manager ID (CAMID) dell'utente in base al tipo di identità (account, gruppo o ruolo). CAMIDListForType può essere utilizzato con le funzioni macro csv o join. CAMIDListForType ( identity type ) Esempio: [qs].[userRole] in ( # csv ( CAMIDListForType ( 'role' ) ) # ) Risultato: [qs].[userRole] in ( 'CAMID ( "::System Administrators" ) ' ; 'CAMID ( ":Authors" )' ) Concatena due stringhe. valore1 + valore2 Esempio: # '{ ' + $runLocale + ' }' # Risultato: {en-us} Rimuovere i caratteri iniziali dal primo argomento. Il secondo argomento facoltativo definisce il set di caratteri da rimuovere. Per impostazione predefinita, questa funzione rimuove lo spazio vuoto (ad esempio, spazio, tabulazione, ritorno a capo e avanzamento riga). lstrip ( string_expression [ ; set_of_characters ] ) Esempio: # sq( lstrip ( ' abc ' ) ) # Risultato: 'abc ' Esempio: # lstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Risultato: 53.2100 Restituisce il valore del parametro "parameterName" se è definito. Se "parameterName" non esiste verrà restituito il valore di "defaultText". Quando "datatype" è impostato su "string" il valore del risultato verrà racchiuso tra singoli apici. L'utilizzo di questa funzione non causerà un'eccezione di tipo parametro mancante. ParamValue ( parameterName [ , defaultText [, datatype ] ] ) Esempio: # ParamValue ( 'p_country' ) # Risultato: 'Canada' - p_country è impostato Risultato: null - p_country non è un parametro noto Risultato: null - p_country viene utilizzato come prompt facoltativo e non viene impostato. Esempio: # ParamValue ( 'p_country' , 'Netherlands' ) # Risultato: 'Canada' - p_country è impostato Risultato: 'Netherlands' - p_country non è un parametro noto Risultato: 'Netherlands' - p_country viene utilizzato come prompt facoltativo e non viene impostato. Esempio: # ParamValue ( 'p_country', ' cast ( null as varchar(20)) ' , 'token' ) # Risultato: 'Canada' - p_country è impostato Risultato: cast ( null as varchar(20)) - p_country non è un parametro noto Risultato: cast ( null as varchar(20)) - p_country viene utilizzato come prompt facoltativo e non viene impostato. Richiede all'utente un singolo valore o membro. È obbligatorio solo "prompt_name". Se non specificato, viene utilizzato il tipo di dati 'stringa' per impostazione predefinita. Se viene specificato "defaultText", il prompt è facoltativo. Se specificato, "Text" precede il valore. È possibile specificare "QueryItem" per utilizzare le proprietà Prompt Info di "QueryItem". Se specificato, "trailing_text" viene aggiunto al valore. Quando il tipo di dati è 'memberuniquename', viene creato un prompt di membri a selezione singola. È buona norma fornire un valore predefinito come terzo argomento. Il valore predefinito deve essere un nome univoco di membro valido; può anche essere un alias che fa riferimento ad un nome univoco di membro come in Report Studio. prompt ( prompt_name ; datatype ; defaultText ; text ; queryItem ; trailing_text ) Esempio: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > #prompt ( 'Starting CountryCode' ; 'integer' ; '10' ) # Risultato: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10 Esempio: [gosales].[COUNTRY].[COUNTRY] = # prompt ( 'countryPrompt' ; 'stringa' ; '''Canada''' ) # Risultato: [gosales].[PAESE].[PAESE] = 'Canada' Esempio: set ( #prompt ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Risultato: set([Sales].[Product].[Product].[Product line]->[all].[1]) Il parametro "defaultText" deve essere specificato in modo che sia letteralmente valido nel contesto della macro. Per questo valore non viene infatti eseguita alcuna formattazione. La stringa predefinita '''Canada''' dell'esempio 2 è specificata come stringa che utilizza le virgolette singole, nella quale le virgolette singole incorporate sono raddoppiate. Ne risultano pertanto tre virgolette. L'impostazione fa sì che la stringa venga visualizzata correttamente nell'espressione con le virgolette semplici. Come regola generale per il tipo di dati della stringa, specificare sempre il parametro "defaultText" in questo modo, tranne che nel contesto di un parametro stored procedure. Per "defaultText" dei tipi 'date' o 'datetime', deve essere utilizzato un formato speciale nel contesto SQL. Esempi di questi formati sono 'DATE ''2001-12-25''' e 'DATETIME ''2001-12-25 12:00:00'''. In tutti gli altri contesti, utilizzare la data o data/ora senza la parola chiave e le virgolette semplici (ad esempio '2001-12-25'). Richiede all'utente uno o più valori o membri. È obbligatorio solo "prompt_name". Se non specificato, viene utilizzato il tipo di dati 'stringa' per impostazione predefinita. Se viene specificato "defaultText", il prompt è facoltativo. Se specificato, "text" precede l'elenco di valori. È possibile specificare "QueryItem" per utilizzare le proprietà Prompt Info di "QueryItem". Se specificato, "trailing_text" viene aggiunto all'elenco di valori. Quando il tipo di dati è 'memberuniquename', viene creato un prompt di membri a selezione multipla. È buona norma fornire un valore predefinito come terzo argomento. Il valore predefinito deve essere un nome univoco di membro valido; può anche essere un alias che fa riferimento ad un nome univoco di membro come in Report Studio. promptmany ( prompt_name ; datatype ; defaultText ; text ; queryItem ; trailing_text ) Esempio: select . . . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( 'CountryName' ) # ) Risultato: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' ; 'The Netherlands' ; 'Russia' ) Esempio: 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 ( ' ; '' ; ' ) ' ) # Risultato: 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' ) Esempio: set ( #promptmany ('myProduct'; 'memberuniquename'; '[Camping Equipment]'; ''; '[Sales].[Product].[Product].[Product line]')#) Risultato: set([Sales].[Product].[Product].[Product line]->[all].[1]; [Sales].[Product].[Product].[Product line]->[all].[2]) Esegue una query per una singola colonna e restituisce il valore nella prima (unica) riga. Il risultato non è formattato, assicurarsi di racchiudere la chiamata tra sq ( ). queryValue ( value_expression [ , filter_expression ] ) Esempio: # sq ( queryValue ( 'TheCalendar.TheWeekdayName' , 'TheCalendar.TheDate = 2018-06-06' ) ) # Risultato: 'Wednesday' Costruisce un array dall'elenco di parametri. array ( string_expression|array_expression { ; string_expression|array_expression } ) Esempio: # csv ( array ( 'a1' ; array ( 'x1' ; 'x2' ) ; 'a2' ) ) # Risultato: 'a1' ; 'x1' ; 'x2' ; 'a2' Costruisce una stringa di valori separati da virgola dagli elementi dell'array. Se lo si desidera, è possibile specificare le stringhe per il separatore e le virgolette. Il separatore predefinito è un punto e virgola ( ; ) e la virgoletta predefinita è una virgoletta singola ( ' ). csv ( array_expression [ ; separator_string [ ; quote_string ] ] ) Esempio: # sq ( csv ( array ( 'a1' , 'a2' ) ) ) # Risultato: 'a1' , 'a2' Ottiene una voce dal file di configurazione di IBM® Cognos®. Il force_decode_flag è opzionale e deve essere di tipo: 'true' , '1', 1 , 'false', '0', 0. Il valore predefinitp è 'false'. In casi eccezionali il force_decode_flag deve essere impostato su true. Quando il force_decode_flag è impostato su true, per le voci configurate nella configurazione IBM® Cognos® mediante le proprietà Avanzate, verrà restituito il valore di testo semplice della voce di configurazione. Per le voci non identificate nelle proprietà Avanzate, viene restituita una stringa vuota, indipendentemente dalla presenza di informazioni codificate. La voce nelle proprietà Avanzate è qs.getConfigurationEntry.1 ed è un elenco di nomi separati da punto e virgola; per impostazione predefinita questo elenco di nomi è vuoto e chiama questa funzione quando il flag impostato su true restituirà una stringa vuota. getConfigurationEntry ( entry_string ; force_decode_flag ) Esempio: # getConfigurationEntry ( 'serverLocale'  ) # Risultato: en Restituisce una voce da un file risorsa Il primo argomento è l'ID risorsa trovato nel file risorsa. Il secondo argomento facoltativo è il nome file risorsa senza il suffisso della locale (ad esempio 'mfwa4j' per il file messaggio 'mfwa4j_en.properties'). Il file risorsa predefinito è 'xqejavamsgs'. Il terzo argomento facoltativo è la locale che per impostazione predefinita è impostata su 'en'. getResourceString ( resource_id_string [, resource_file_string [ , locale_string ] ] ) Esempio: # getResourceString ( 'XQE_BIN_binLow' ) # Risultato: XQE-BIN-0001 minore di %1 Esempio: # getResourceString ( 'MFW_UT_INTERNAL_ERROR' , 'mfw4j' , 'en' ) # Risultato: MFW-UT-1002 Si è verificato un problema interno. Contattare l'amministratore del sistema. Ricerca e restituisce gli elementi di un array che corrispondono alla sequenza specificata in "pattern_string". Gli unici metacaratteri supportati sono: ^ (inizio parola), $ (fine parola), ! (negata - supportato solo come primo carattere). grep ( pattern_string ; array_expression ) Esempio: # sq ( csv ( grep ( 's' , array ( 'as', 'an', 'arts' ) ) ) ) # Risultato: 'as', 'arts' Esempio: # sq ( csv ( grep ( '^g' , array ( 'group', 'golf' ) ) ) ) # Risultato: 'group', 'golf' Esempio: # sq ( csv ( grep ( 's$' , array ( 'oranges', 'mangoes' ) ) ) ) # Risultato: 'oranges', 'mangoes' Esempio: # sq ( csv ( grep ( '!o' , array ( 'oranges', 'apples' ) ) ) ) # Risultato: 'apples' Trovare lo scostamento in 'str' dove si trova 'substr'. Il valore -1 viene restituito quando 'substr' non è stato trovato. È anche possibile fornire un 'offset' opzionale per avviare la ricerca. Il primo argomento 'str' può anche essere un'espressione array_expression, in quel caso la funzione viene applicata a ogni elemento schiera e il risultato funzione è una schiera di valori. indice ( str , substr [ , offset ] ) # index ( 'The black horse jumped over the black sheep.', 'black' ) # Risultato: 4 # index ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Risultato: 32 # index ( 'The black horse jumped over the black sheep.', 'green' ) # Risultato: -1 # sq ( join ( ' | ', index ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Risultato : -1 | 1 | 2 Unisce gli elementi di un array tramite "separator_string". join ( separator_string ; array_expression ) Esempio: # sq ( join ( ' | | ' ; array ( 'as'; 'an'; 'arts' ) ) ) # Risultato: 'as | | an | | arts' Calcola il numero di caratteri in string_expression. Se l'argomento è un array_expression, il risultato sarà un array di valori, ogni voce sarà il numero di caratteri in ciascuno degli elementi array_expression. length ( string_expression | array_expression ) length ( 'abcdef' ) Risultato: 6 join ( '--', length ( array ( 'abcdef' , 'xyz' ) ) ) Risultato: 6--3 Trovare l'ultimo scostamento in 'str' dove si trova 'substr'. Questa funzione viene chiamata inversa inversa, è possibile visualizzarla come se si avvii la scansione dalla fine della stringa. Viene restituito il valore -1 quando 'substr' non è stato trovato. È anche possibile fornire un 'offset' opzionale per terminare la ricerca. Il primo argomento 'str' può anche essere un'espressione array_expression, in quel caso la funzione viene applicata a ogni elemento schiera e il risultato funzione è una schiera di valori. rindex ( str , substr [ , offset ] ) # rindex ( 'The black horse jumped over the black sheep.', 'black' ) # Risultato: 32 # rindex ( 'The black horse jumped over the black sheep.', 'black', 10 ) # Risultato: 4 # rindex ( 'The black horse jumped over the black sheep.', 'green' ) # Risultato: -1 # sq ( join ( ' | ', rindex ( array ('black' , 'red', 'green' ) , 'e' ) ) ) # Risultato: -1 | 1 | 3 Rimuovere i caratteri finali dal primo argomento. Il secondo argomento facoltativo definisce il set di caratteri da rimuovere. Per impostazione predefinita, questa funzione rimuove lo spazio vuoto (ad esempio, spazio, tabulazione, ritorno a capo e avanzamento riga). rstrip ( string_expression [ ; set_of_characters ] ) Esempio: # sq( rstrip ( ' abc ' ) ) # Risultato: ' abc' Esempio: # rstrip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Risultato: 0053.21 Dispone gli elementi dell'array in ordine alfabetico. Gli elementi doppi vengono mantenuti. sort ( array_expression ) Esempio: # csv ( sort ( array ( 's3'; 'a'; 'x' ) ) ) # Risultato: 'a', 's3', 'x' Divide una stringa o gli elementi della stringa dell'array in elementi separati. split ( pattern_string; string_expression|array_expression ) Esempio: # sq ( csv ( split ( '::', 'ab=c::de=f::gh=i' ) ) ) # Risultato: 'ab=c' , 'de=f', 'gh=i' Esempio: # sq ( csv ( split ( '=' , split ( '::', 'ab=c::de=f::gh=i' ) ) ) ) # Risultato: 'ab' , 'c' , 'de' , 'f', 'gh' , 'i' Rimuovere i caratteri iniziali e finali dal primo argomento. Il secondo argomento facoltativo definisce il set di caratteri da rimuovere. Per impostazione predefinita, questa funzione rimuove lo spazio vuoto (ad esempio, spazio, tabulazione, ritorno a capo e avanzamento riga). strip ( string_expression [ ; set_of_characters ] ) Esempio: # sq( strip ( ' abc ' ) ) # Risultato: 'abc' Esempio: # strip ( ' 0053.2100 ' ; '0 \t\r\n' ) # Risultato: 53.21 Cerca un motivo in una stringa o negli elementi della stringa di un array e sostituisce la prima occorrenza di "pattern_string" con "replacement_string". Gli unici metacaratteri supportati sono: ^ (inizio parola), $ (fine parola) substitute ( pattern_string; replacement_string; string_expression|array_expression ) Esempio: #sq ( substitute ( '^cn='; '***'; 'cn=help' ) )# Risultato: '***help' Esempio: # csv ( substitute ( '^cn='; '***'; array ( 'cn=help' ; 'acn=5' ) ) ) # Risultato: '***help', 'acn=5' Esempio: # csv ( substitute ( 'cn='; ''; array ( 'cn=help' ; 'acn=5' ) ) ) # Risultato: 'help' , 'a5' Esempio: #sq ( substitute ( 'help$', '***', 'cn=help' ) )# Risultato: 'cn=***' Estrae una parte da 'string_expression' a partire da 'start_offset'. È possibile specificare che devono essere estratti il numero di caratteri 'length'. Se 'length' non è specificato, viene restituito fino alla fine di 'string_expression'. Il primo argomento può anche essere un array_expression, in tal caso la funzione viene applicata a ogni elemento dell'array e il risultato della funzione è un array di stringhe. substr ( string_expression , start_offset [ , length ] ) substr ( 'The horse is black.', 0, 3 ) Result: The substr ( 'The horse is black.', 4 ) Result: horse is black. substr ( 'The horse is black', index ('The horse is black.' , 'green' ) ) Result: The horse is black. join ( ' | ', substr ( array ('black' , 'red', 'green' ) , 2, 2 ) ) Result: ac | d | en substr ('over the moon', -2, 4) Risultati in un errore: il secondo argomento della funzione 'substr' deve essere maggiore o uguale a -1.' . Restituisce "string_expression1", che rappresenta un timestamp con fuso orario, ridotto nel formato specificato in "string_expression2". Il formato specificato in "string_expression2" deve essere uno dei seguenti: 'aaaa', 'mm', 'gg', 'aaaa-mm', 'aaaamm', 'aaaa-mm-gg', 'aaaammgg', 'aaaa-mm-gg hh:mm:ss', 'aaaa-mm-gg hh:mm:ss+hh:mm', 'aaaa-mm-gg hh:mm:ss.ff3', 'aaaa-mm-gg hh:mm:ss.ff3+hh:mm', 'aaaa-mm-ggThh:mm:ss', 'aaaa-mm-ggThh:mm:ss+hh:mm', 'aaaa-mm-ggThh:mm:ss.ff3+hh:mm', oppure 'aaaa-mm-ggThh:mm:ss.ff3+hh:mm'. Per impostazione predefinita, le funzioni macro che restituiscono una rappresentazione in formato stringa di un timestamp con fuso orario hanno una precisione di 9 cifre per la parte frazionaria dei secondi. Le opzioni relative al formato consentono di ridurre il formato con una precisione di 3 o 0. timestampMask ( string_expression1 ; string_expression2 ) Esempio: # timestampMask ( $current_timestamp ; 'yyyy-dd-mm' ) # Risultato: 2005-11-01 Esempio: # timestampMask (  '2005-11-01 12:00:00.000-05:00' ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # Risultato: 2005-11-01 12:00:00-05:00 Esempio: # timestampMask (  '2005-11-01 12:00:00.123456789-05:00' ; 'yyyy-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm' ) # Risultato: 2005-11-01T12:00:00.123-05:00 Restituisce la stringa che rappresenta un timestamp con fuso orario risultante dall'adeguamento di "espressione_stringa" al fuso orario del sistema operativo. La funzione macro timestampMask() può essere utilizzata per modificare e adeguare l'output. toLocal ( string_expression ) Esempio: # toLocal ( '2005-11-01 17:00:00.000-00:00' ) # dove il fuso orario del sistema operativo è -05:00 Risultato: 2005-11-01 12:00:00.000000000-05:00 Esempio: # timestampMask ( toLocal ( '2005-11-01 17:00:00.000-00:00' ) ; 'yyyy-mm-dd hh:mm:ss+hh:mm' ) # dove il fuso orario del sistema operativo è -05:00 Risultato: 2005-11-01 12:00:00-05:00 Esempio: # toLocal ( '2005-11-01 13:30:00.000-03:30' ) # dove il fuso orario del sistema operativo è -05:00 Risultato: 2005-11-01 12:00:00.000000000-05:00 Restituisce la stringa "string_expression" con tutti i caratteri convertiti in minuscolo utilizzando le regole della locale "locale_string". Se non si specifica alcuna locale, viene utilizzata la locale 'en'. tolower ( string_expression [ ; locale_string ] ) Esempio: # tolower ( 'ABC' ) # Risultato: abc Esempio: # tolower ( 'ABC' ; 'fr' ) # Risultato: abc Restituisce la stringa "string_expression" con tutti i caratteri convertiti in maiuscolo utilizzando le regole della locale definite in "locale_string". Se "locale_string" non è specificato, viene utilizzata la locale 'en'. toupper ( string_expression [ ; locale_string ] ) Esempio: # toupper ( 'abc' ) # Risultato: ABC Esempio: # toupper ( 'abc' ; 'fr' ) # Risultato: ABC Restituisce la stringa che rappresenta un timestamp con fuso orario risultante dall'adeguamento di "espressione_stringa" al fuso orario di riferimento UTC, noto anche come ora GMT. La funzione macro timestampMask() può essere utilizzata per modificare e adeguare l'output. toUTC ( string_expression ) Esempio: # toUTC ( '2005-11-01 12:00:00.000-05:00' ) # Risultato: 2005-11-01 17:00:00.000000000-00:00 Esempio: # timestampMask( toUTC ( '2005-11-01 12:00:00.000-05:00' ) ; 'yyyy-mm-dd hh:mm:ss.ff3+hh:mm' ) # Risultato: 2005-11-01 17:00:000,000-00:00 Esempio: # toUTC ( $current_timestamp ) # Risultato: 2005-11-01 17:00:00.000000000-00:00 Rimuove le voci duplicate dall'array. L'ordine degli elementi viene mantenuto. unique ( array_expression ) # csv ( unique ( array ( 's3'; 'a'; 's3'; 'x' ) ) ) # Risultato: 's3', 'a', 'x' URL codifica l'argomento passato. Questa funzione è utile quando si specificano le stringhe di connessione XML. urlencode ( prompt ( 'userValue' ) ) urlencode ( prompt ( 'some_val' ) ) %27testValue%27 simple case Questo costrutto macro è il modello per un caso semplice, incluso le funzioni CASE, WHEN, THEN, ELSE e END. Si noti che questo costrutto macro è supportato solo in modalità DQM. CASE <espressione> WHEN <letterale> THEN <espressione> [ELSE <espressione>] END Esempio: #CASE prompt('pDateRange';'token') WHEN 'Current Week' THEN '[PR Current Week]' ELSE '[PR Prior Week]' END# Risultato: [PR Current Week]
Funzioni di blocco Questo elenco contiene le funzioni utilizzate per accedere ai membri di un set, solitamente in Analysis Studio. Restituisce i primi membri trovati nel set fino a "numeric_expression_maximum" + "numeric_expression_overflow". Se viene superato "numeric_expression_maximum" + "numeric_expression_overflow", viene restituito solo il numero massimo di membri. Per un set che ha solo alcuni membri più del valore specificato per numeric_expression_max, l'overflow_numeric_expression consente di includere un piccolo set di membri supplementari. Se il set ha più membri di quelli consentiti dall'overflow, solo i membri di numeric_expression_maximum verranno restituiti. _firstFromSet ( set_expression ; numeric_expression_maximum ; numeric_expression_overflow ) _firstFromSet ( [great_outdoors_company].[Prodotti].[Prodotti].[Linea di prodotti] ; 2 ; 8 )  Risultato: restituisce i cinque membri del set Linea di prodotti. I primi due membri vengono restituiti entro il valore massimo e i successivi tre membri vengono restituiti come valore overflow. Attrezzatura per campeggio Attrezzatura da golf Attrezzatura per alpinismo Protezione all'aperto Accessori personali _firstFromSet ( [great_outdoors_company].[Prodotti].[Prodotti].[Linea di prodotti] ; 2 ; 2 ) Risultato: Attrezzatura da campeggio, Attrezzatura da golf Restituisce il set contenente "member_expression" quando la dimensione di "set_expression" è superiore a "numeric_expression"; ossia un nuovo membro viene generato se il numero di membri specificato in "set_expression" è superiore a quello specificato in "numeric_expression". _remainderSet ( member_expression; set_expression ; numeric_expression ) _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 ) Risultato: Quantità venduta per Aggregazione prodotti