Funzioni comuni A-C D-G H-L M-Q R-Z Funzioni trigonometriche
Comandi SQL-99 scalari abs ( numeric_expression ) Restituisce il valore assoluto di "espressione_numerica". I valori negativi sono restituiti come valori positivi. Esempio: abs ( 15 ) Risultato: 15 Esempio: abs ( -15 ) Risultato: 15 bit_length bit_length ( string_expression ) Restituisce il numero dei bit inclusi in "string_expression". cast ( expression , datatype_specification ) Converte "expression" in un tipo di dati specificato. Per alcuni tipi di dati è ammessa la specifica della lunghezza e della precisione. Verificare che il valore target sia del tipo e della dimensione appropriati. È possibile utilizzare i seguenti valori per "datatype_specification": character, varchar, char, numeric, decimal, integer, bigint, smallint, real, float, date, time, timestamp, time with time zone, timestamp with time zone e interval. Quando si esegue il cast in un tipo interval, è necessario specificare uno dei seguenti qualificatori di intervallo: year, month o year to month per il tipo di dati dell'intervallo anno-mese; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second o minute to second per il tipo di dati dell'intervallo giorno-secondo. Note: durante la conversione di un valore di tipo timestamp in valore di tipo data, la parte del valore timestamp relativa all'ora viene ignorata. Quando un valore di tipo timestamp viene convertito in un valore di tipo time, la parte del valore timestamp relativa alla data viene ignorata. Quando un valore di tipo date viene convertito in un valore di tipo timestamp, i componenti del timestamp relativi all'ora vengono impostati su zero. Quando un valore di tipo time viene convertito in un valore di tipo timestamp, il componente relativo alla data viene impostato sulla data di sistema corrente. La conversione di un tipo di dati di intervallo in un altro non è valida (ad esempio perché il numero di giorni di un mese è variabile). È possibile specificare soltanto il numero di cifre per il qualificatore principale, ad esempio YEAR(4) TO MONTH, DAY(5). Se il tipo e la dimensione di destinazione non sono compatibili con il tipo e la dimensione di origine, verranno restituiti degli errori. Esempio: cast ( '123' , integer ) Risultato: 123 Esempio: cast ( 12345 , varchar ( 10 ) ) Risultato: una stringa contenente 12345 char_length ( string_expression ) Restituisce il numero di caratteri logici inclusi in "espressione_stringa". In alcune lingue asiatiche, il numero di caratteri logici può essere distinto dal numero di byte. Esempio: char_length ( 'Canada' ) Risultato: 6 character_length ( string_expression ) Restituisce il numero di caratteri inclusi in "string_expression". Esempio: character_length ( 'Canada' ) Risultato: 6 current_date current_date Restituisce un valore data che rappresenta la data corrente del computer su cui è in esecuzione il software del database. Esempio: current_date Risultato: 2003-03-04 current_time  current_time  Restituisce un orario con l'indicazione del fuso orario, che rappresenta l'ora corrente del computer che esegue il software del database, se il database supporta questa funzione. In caso contrario, rappresenta l'ora corrente del computer in cui è in esecuzione il software IBM® Cognos® BI. Esempio: current_time Risultato: 16:33:11.354+05:00 current_timestamp current_timestamp Restituisce una data/ora con l'indicazione del fuso orario, che rappresenta l'ora corrente del computer che esegue il software del database, se il database supporta questa funzione. In caso contrario, rappresenta l'ora corrente del computer in cui è in esecuzione il software IBM® Cognos® BI. Esempio: current_timestamp Risultato: 2003-03-03 16:40:15.535+05:00 localtime localtime Restituisce un valore di tipo ora che rappresenta l'ora corrente del computer che esegue il software del database. Esempio: localtime Risultato: 16:33:11 localtimestamp localtimestamp Restituisce un valore data/ora che rappresenta il timestamp corrente del computer che esegue il software del database. Esempio: localtimestamp Risultato: 2003-03-03 16:40:15 extract ( datepart , datetime_expression ) Restituisce un intero che rappresenta il valore di datepart (year, month, day, hour, minute, second, epoch) in "datetime_expression". Esempio: extract ( anno , 2003-03-03 16:40:15.535 ) Risultato: 2003 Esempio: extract ( ora , 2003-03-03 16:40:15.535 ) Risultato: 16 Esempio: extract ( epoch , 2014-11-23 ) Risultato: 1416718800 lower ( string_expression ) Restituisce "string_expression" con tutti i caratteri in maiuscolo trasformati in minuscolo. Esempio: lower ( 'ABCDEF' ) Risultato: abcdef mod ( integer_expression1, integer_expression2 ) Restituisce il resto (modulo) di "espressione1_numero_intero" diviso "espressione2_numero_intero". "Espressione2_numero_intero" deve essere diverso da zero, altrimenti viene generata un'eccezione. Esempio: mod ( 20 , 3 ) Risultato: 2 occurrences_regex ( regex_expression , string_expression [ , integer_expression [ , flags_expression ]] ) Restituisce il valore intero che rappresenta il numero di ricorrenze dell'espressione regolare "regex_expression" in "string_expression". La ricerca inizia dalla posizione "integer_expression", il cui valore predefinito è 1. Gli indicatori per l'impostazione delle opzioni per l'interpretazione dell'espressione regolare sono specificati da "flags_expression". Per definire gli indicatori vengono utilizzate singole lettere, ed i valori validi sono 's', 'm', 'i' e 'x'. Esempio: occurrences_regex ( '.er' , 'Flicker Lantern') Risultato: 2 octet_length ( string_expression ) Restituisce il numero dei byte inclusi in "string_expression". Esempio: octet_length ( 'ABCDEF' ) Risultato: 6 Esempio: octet_length ( '' ) Risultato: 0 position ( string_expression1 ; string_expression2 ) Restituisce un valore intero che rappresenta la posizione iniziale di "string_expression1" in "string_expression2" oppure restituisce 0 se "string_expression1" non viene trovata. Esempio: position ( 'C' , 'ABCDEF' ) Risultato: 3 Esempio: position ( 'H' , 'ABCDEF' ) Risultato: 0 position_regex ([ start|after ]  regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Restituisce il valore intero che rappresenta la posizione iniziale o finale della sottostringa in "string_expression" che corrisponde all'espressione regolare "regex_expression". La ricerca inizia dalla posizione "integer_expression1", il cui valore predefinito è 1. La ricorrenza del pattern modello da ricercare è specificato da "integer_expression2", il cui valore predefinito è 1. L'opzione return, specificata dal primo argomento, specifica le informazioni restituite in relazione alla ricorrenza. Se si specifica "start", viene restituita la posizione del primo carattere della ricorrenza. Se si specifica "after", viene restituita la posizione del carattere che segue la ricorrenza. Se non viene specificata un'opzione di restituzione, è implicita l'opzione "start". Gli indicatori per l'impostazione delle opzioni per l'interpretazione dell'espressione regolare sono specificati da "flags_expression". Per definire gli indicatori vengono utilizzate singole lettere, ed i valori validi sono 's', 'm', 'i' e 'x'. Esempio: position_regex ( '.er' , 'Flicker Lantern') Risultato: 5 Esempio: position_regex ( after '.er' , 'Flicker Lantern' ) Risultato: 8 Esempio: position_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Risultato: 12 trim ( [ [ trailing|leading|both ] [ match_character_expression ] , ] string_expression ) Restituisce "espressione_stringa" senza spazi iniziali e finali o senza i caratteri specificati in "espressione_caratteri_corrispondenza". "Both" è implicito se non è dichiarato il primo argomento e vuoto è implicito se non è dichiarato il secondo argomento. Esempio: trim ( trailing 'A' , 'ABCDEFA' ) Risultato: ABCDEF Esempio: trim ( both , ' ABCDEF ' ) Risultato: ABCDEF upper ( string_expression ) Restituisce "string_expression" con tutti i caratteri minuscoli convertiti in maiuscolo. Esempio: upper ( 'abcdef' ) Risultato: ABCDEF user user Restituisce un ID autorizzazione per il gestore del database in runtime. nullif nullif ( expression1, expression2 ) Restituisce un valore nullo se "expression1" è uguale a "expression2", altrimenti restituisce "expression1". coalesce ( expression_list ) Restituisce il primo argomento diverso da null (o null se tutti gli argomenti sono null). Richiede due o più argomenti in "expression_list". coalesce ( [Prezzo unitario]; [Prezzo di vendita unitario] ) Risultato: restituisce il prezzo unitario o il prezzo di vendita unitario se il prezzo unitario è nullo. coalesce ( expression_list ) Restituisce il primo argomento diverso da null (o null se tutti gli argomenti sono null). Richiede uno o più argomenti in "expression_list". coalesce ( [Prezzo unitario]; [Prezzo di vendita unitario] ) Risultato: restituisce il prezzo unitario o il prezzo di vendita unitario se il prezzo unitario è nullo. ceil ( numeric_expression ) Restituisce il numero intero più piccolo che è maggiore o uguale a "numeric_expression". ceiling ( numeric_expression ) Restituisce il numero intero più piccolo che è maggiore o uguale a "numeric_expression". Esempio: ceiling ( 4.22 ) Risultato: 5 Esempio: ceiling ( -1.23 ) Risultato: -1 ln ( numeric_expression ) Restituisce il logaritmo naturale di "numeric_expression". Esempio: ln ( 4 ) Risultato: 1.38629 exp ( numeric_expression ) Restituisce 'e' elevata a "espressione_numerica". La costante 'e' è la base del logaritmo naturale. Esempio: exp ( 2 ) Risultato: 7.389056 period ( datetime_expression1 , datetime_expression2 ) Crea un valore del periodo con punto iniziale "datetime_expression1" e punto finale "datetime_expression2". I tipi di dati dei punti iniziale e finale devono essere identici e possono essere date, time o dateTime. I valori del periodo possono essere utilizzati nei predicati del periodo. Esempio: period ( 2003-03-03 , 2003-10-03 ) Esempio: period ( 12:00:00 , 23:59:59 ) Esempio: period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Esempio: period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( numeric_expression1 , numeric_expression2 ) Restituisce "numeric_expression1" elevata alla potenza "numeric_expression2". Se "numeric_expression1" è negativa, "numeric_expression2" deve restituire un valore intero. Esempio: potenza ( 3 , 2 ) Risultato: 9 random ( [ integer_expression ] ) Restituisce un valore a virgola mobile casuale compreso tra 0 e 1, utilizzando "integer_expression" come valore di inizializzazione. _round ( numeric_expression , integer_expression ) Restituisce "numeric_expression" arrotondata alle posizioni "integer_expression" a destra della virgola decimale. Note: "integer_expression" deve essere un intero non negativo. L'arrotondamento viene eseguito prima della formattazione dati. Esempio: _round ( 1220.42369, 2 ) Risultato: 1220.42 Il costruttore di riga rappresenta una raccolta di valori organizzati come riga di dati. Può essere utilizzato nelle espressioni condizionali (ad es., IF-THEN-ELSE) e le espressioni filtro (ad es., clausola IN). row ( expression_list ) Esempio: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Risultato: restituisce 'A' se il Nome rivenditore è 'ActiForme' e il codice del metodo ordine è 4. Altrimenti, viene restituito il valore 'B'. Esempio: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Risultato: restituisce 1 se il Nome rivenditore è 'Advanced Climbing Ltd' e il codice del metodo ordine è 3. Restituisce 2 se il Nome rivenditore è 'ActiForme' e il codice del metodo ordine è 5. Altrimenti, viene restituito il valore 3. Esempio: row ( [OrderMethodCode]; [Year] ) in ( [Query].[OMC]; [Query].[YR] ) Risultato: i dati restituiti sono filtrati in base alle seguenti due condizioni: 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( numeric_expression ) Restituisce la radice quadrata di "espressione_numerica". "Espressione_numerica" non deve essere un valore negativo. Esempio: sqrt ( 9 ) Risultato: 3 substring ( string_expression , integer_expression1 [ , integer_expression2 ] ) Restituisce la sottostringa di "espressione_stringa" che inizia nell'ubicazione "espressione1_numero_intero" per "espressione2_numero_intero" caratteri o alla fine di "espressione_stringa" se viene omesso "espressione2_numero_intero". Il primo carattere in "string_expression" si trova in posizione 1. Esempio: substring ( 'abcdefg' , 3 , 2 ) Risultato: cd substring_regex ( regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Restituisce una sottostringa di "string_expression" che corrisponde all'espressione regolare "regex_expression". La ricerca inizia dalla posizione "integer_expression1", il cui valore predefinito è 1. La ricorrenza del modello da ricercare è specificata da "integer_expression2", il cui valore predefinito è 1. Gli indicatori per l'impostazione delle opzioni per l'interpretazione dell'espressione regolare sono specificati da "flags_expression". Per definire gli indicatori vengono utilizzate singole lettere, ed i valori validi sono 's', 'm', 'i' e 'x'. Esempio: substring_regex ( '.er' , 'Flicker Lantern') Risultato: ker Esempio: substring_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Risultato: ter floor ( numeric_expression ) Restituisce il numero intero più grande che è minore o uguale a "numeric_expression". Esempio: floor ( 3.22 ) Risultato: 3 Esempio: floor ( -1.23 ) Risultato: -2 width-bucket ( numeric_expression ,  min_value ,  max_value ,  num_of_buckets ) Per una determinata espressione, questa funzione restituisce il numero di bucket in cui rientra il valore di questa espressione dopo essere stato valutato. Esempio: width-bucket ( Quantity ,  100 ,  5000 ,  10 ) Risultato: per ciascuna riga, restituisce il numero di bucket (da 0 a 11) per il valore Quantità corrente. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( numeric_expression ) Questa funzione trigonometrica restituisce il seno dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: sin ( 0.1667 * 3.1415 ) Risultato: 0.5 cos ( numeric_expression ) Questa funzione trigonometrica restituisce il coseno dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: cos ( 0.3333 * 3.1415 ) Risultato: 0.5 tan ( numeric_expression ) Questa funzione trigonometrica restituisce la tangente dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: tan ( 0.25 * 3.1415 ) Risultato: 1 arccos ( numeric_expression ) Questa funzione trigonometrica inversa restituisce l'arcocoseno dell'argomento, dove l'argomento è compreso tra -1 e 1 ed il risultato è un valore espresso in radianti. Esempio: arccos ( -1 ) Risultato: 3.1415 arcsin ( numeric_expression ) Questa funzione trigonometrica inversa restituisce l'arcoseno dell'argomento, dove l'argomento è compreso tra -1 e 1 ed il risultato è un valore espresso in radianti. Esempio: arcsin ( 0 ) Risultato: 3.1415 Questa funzione trigonometrica inversa restituisce l'arcotangente dell'argomento, dove l'argomento è compreso tra -1 ed il risultato è un valore espresso in radianti. arctan ( numeric_expression ) Esempio: arctan ( 0 ) Risultato: 3.1415 coshyp ( numeric_expression ) Questa funzione trigonometrica restituisce il coseno iperbolico dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: coshyp ( 0 ) Risultato: 1 sinhyp ( numeric_expression ) Questa funzione trigonometrica restituisce il seno iperbolico dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: sinhyp ( 0 ) Risultato: 0 tanhyp ( numeric_expression ) Questa funzione trigonometrica restituisce la tangente iperbolica dell'argomento, dove l'argomento è un angolo espresso in radianti. Esempio: tanhyp ( 0 ) Risultato: 0
Estensioni OLAP dei comandi SQL-99 cube cube ( grouping_column_reference_list ) Questa è una clausola group-by che ha come risultato un elenco di set di raggruppamento contenente un set di raggruppamento per tutte le possibili combinazioni delle colonne di raggruppamento di "elenco_riferimento_colonna_raggruppamento". rollup rollup ( grouping_column_reference_list ) Questa è una clausola group-by che ha come risultato un elenco di set di raggruppamento contenente un set di raggruppamento per ogni sottoelenco appropriato di "elenco_riferimento_colonna_raggruppamento" ottenuto trascinando elementi dal lato destro, uno alla volta. grouping sets grouping sets ( grouping_set_list ) Questa è una clausola group-by che specifica più set da raggruppare. rank rank () Calcola la classifica della riga all'interno della partizione di finestra, laddove la classifica della riga x viene definita come 1 più il numero di righe che precedono x ma che non sono peer di x. dense_rank dense_rank () Calcola la classifica di densità della riga all'interno di una partizione di finestra, laddove la classifica di densità della riga x è il numero di righe distinte che precedono e includono x. percent_rank percent_rank () Calcola la classifica percentuale della riga all'interno di una partizione di finestra: la classifica percentuale della riga x viene definito da (xy - 1)/(ab - 1), laddove xy è la classifica di x e ab è il numero di righe nella partizione di finestra. row_number row_number () Calcola il numero sequenziale della riga all'interno della partizione di finestra, partendo da 1 per la prima riga. ntile ntile ( numeric_expression ) Divide un set di dati ordinato in un numero di bucket, come indicato da "numeric_expression", e assegna a ciascuna riga il numero di bucket appropriato.