Riferimento funzioni (flusso dati)
Le funzioni riportate di seguito vengono utilizzate con gli operatori di un flusso di dati per consentire la creazione di espressioni.
Funzione | descrizione; | Esempio |
---|---|---|
COUNT(value[, value]*) | Restituisce il numero di righe per le quali una o più espressioni fornite sono tutte non nulle. | COUNT(expr1) |
COUNT(*) | Restituisce il numero totale di righe recuperate, incluse le righe contenenti valori nulli. | COUNT(*) |
MAX(value) | Restituisce il valore massimo dell'argomento. | MAX(expr) |
MIN(value) | Restituisce il valore minimo dell'argomento. | MIN(expr) |
SUM(numeric) | Restituisce la somma calcolata in base ai valori di un gruppo. | SUM(expr1) |
AVG(numeric) | Restituisce la media dei valori numerici in un'espressione. | AVG(AGGREGATE_1.src1.attribute1) |
LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause) | Concatena i valori della colonna di input con il delimitatore specificato per ogni gruppo in base alla clausola order. La colonna contiene i valori che si desidera concatenare insieme nel risultato. Il delimitatore separa i valori della colonna nel risultato. Se non viene fornito un delimitatore, viene utilizzato un carattere vuoto. order_by_clause determina l'ordine di restituzione dei valori concatenati. Questa funzione può essere utilizzata solo come aggregatore e può essere utilizzata con il raggruppamento o senza raggruppamento. Se si utilizza senza raggruppamento, il risultato è una singola riga. Se si utilizza un raggruppamento, la funzione restituisce una riga per ogni gruppo. | Si consideri una tabella con due colonne,
Esempio 1: senza raggruppamento
Esempio 2: Raggruppa per
|
Funzione | descrizione; | Esempio |
---|---|---|
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) |
Restituisce il valore valutato nella riga corrispondente alla prima riga del frame della finestra. | FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) restituisce il primo valore di BANK_ID in una finestra in cui le righe vengono calcolate come riga corrente e 1 riga dopo tale riga, partizionata per BANK_ID e in ordine crescente per BANK_NAME . |
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) |
Restituisce il valore valutato alla riga in corrispondenza di un determinato offset prima della riga corrente all'interno della partizione. In assenza di tale riga, viene restituito il valore predefinito. L'offset e il valore predefinito vengono valutati rispetto alla riga corrente. Se omesso, l'offset viene impostato su 1 per impostazione predefinita e su NULL. | LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) restituisce il valore di BANK_ID dalla seconda riga prima della riga corrente, partizionato da BANK_ID e in ordine decrescente di BANK_NAME . In assenza di tale valore, viene restituito hello . |
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) |
Restituisce il valore valutato nella riga che corrisponde all'ultima riga del frame della finestra. | LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) restituisce l'ultimo valore di BANK_ID in una finestra in cui le righe vengono calcolate come riga corrente e 1 riga dopo tale riga, partizionata per BANK_ID e in ordine crescente per BANK_NAME . |
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) |
Restituisce il valore valutato alla riga in corrispondenza di un determinato offset dopo la riga corrente all'interno della partizione. In assenza di tale riga, viene restituito il valore predefinito. L'offset e il valore predefinito vengono valutati rispetto alla riga corrente. Se omesso, l'offset viene impostato su 1 per impostazione predefinita e su NULL. | LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) restituisce il valore di BANK_ID dalla seconda riga dopo la riga corrente, partizionato da BANK_ID e in ordine crescente da BANK_NAME . In assenza di tale valore, viene restituito hello . |
RANK() OVER([ partition_clause ] order_by_clause) |
Restituisce la classificazione della riga corrente con interruzioni, contando da 1. | RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) restituisce la classificazione di ogni riga all'interno del gruppo di partizioni di BANK_ID , in ordine crescente di BANK_NAME . |
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) |
Restituisce il numero univoco della riga corrente all'interno della partizione, contando da 1. | ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) restituisce il numero di riga univoco di ogni riga all'interno del gruppo di partizioni di BANK_ID , in ordine crescente di BANK_NAME . |
Funzione | descrizione; | Esempio |
---|---|---|
ABS(numeric) | Restituisce la potenza assoluta del valore numeric . | ABS(-1) |
CEIL(numeric) | Restituisce il numero intero minimo non maggiore del valore numeric | CEIL(-1,2) |
FLOOR(numeric) | Restituisce il numero intero più alto non maggiore del valore numeric . | FLOOR(-1,2) |
MOD(numeric1, numeric2) | Restituisce il resto dopo che numeric1 è diviso per numeric2 . | MOD(8,2) |
POWER(numeric1, numeric2) | Alza numeric1 alla potenza di numeric2 . | POWER(2,3) |
ROUND(numeric1, numeric2) | Restituisce numeric1 arrotondato alle posizioni decimali numeric2 . | ROUND(2.5,0) |
TRUNC(numeric1, numeric2) | Restituisce numeric1 troncato alle posizioni decimali numeric2 . | TRUNC(2.5,0) |
TO_NUMBER(expr[, format, locale]) | Converte un valore expr in un numero, in base al valore format e al valore locale facoltativo fornito. La versione locale predefinita è en-US . Tag lingua supportati.Pattern di formato supportati:
|
|
Solo l'operatore Expression supporta le funzioni array.
Funzione | descrizione; | Esempio |
---|---|---|
ARRAY_POSITION(array(...), element) | Restituisce la posizione della prima occorrenza dell'elemento specificato nell'array specificato. La posizione non è basata su zero, ma inizia con 1. | ARRAY_POSITION(array(3, 2, 1, 4, 1), 1) restituisce 3 |
REVERSE(array(...)) |
Restituisce l'array di elementi specificato in ordine inverso. | REVERSE(array(2, 1, 4, 3)) restituisce [3,4,1,2] |
ELEMENT_AT(array(...), index) |
Restituisce l'elemento dell'array specificato nella posizione di indice specificata. L'indice non è basato su zero, ma inizia con 1. Se |
ELEMENT_AT(array(1, 2, 3), 2) restituisce 2 |
Funzione | descrizione; | Esempio |
---|---|---|
COALESCE(value, value [, value]*) | Restituisce il primo argomento non nullo, se esistente, altrimenti restituisce un valore nullo. | COALESCE(NULL, 1, NULL) restituisce 1 |
NULLIF(value, value) | Restituisce un valore nullo se i due valori sono uguali, altrimenti restituisce il primo valore. | NULLIF('ABC','XYZ') restituisce ABC |
Funzione | descrizione; | Esempio |
---|---|---|
CURRENT_DATE |
Restituisce la data corrente. | CURRENT_DATE restituisce la data odierna, ad esempio 2023-05-26 |
CURRENT_TIMESTAMP |
Restituisce la data e l'ora correnti per il fuso orario della sessione. | CURRENT_TIMESTAMP restituisce la data odierna e l'ora corrente, ad esempio 2023-05-26 12:34:56
|
DATE_ADD(date, number_of_days) |
Restituisce la data number specificata dei giorni successivi al valore date specificato. |
DATE_ADD('2017-07-30', 1) restituisce 2017-07-31 |
DATE_FORMAT(expr, format[, locale]) |
Formatta un valore Pattern di formato data supportati:
|
|
DAYOFMONTH(date) |
Restituisce il giorno della data del mese. | DAYOFMONTH('2020-12-25') restituisce 25 |
DAYOFWEEK(date) |
Restituisce il giorno della data della settimana. | DAYOFWEEK('2020-12-25') restituisce 6 per venerdì. Negli Stati Uniti, la domenica è considerata 1, il lunedì è 2 e così via. |
DAYOFYEAR(date) |
Restituisce il giorno della data nell'anno. | DAYOFYEAR('2020-12-25') restituisce 360 |
WEEKOFYEAR(date) |
Restituisce la settimana della data nell'anno. |
|
HOUR(datetime) |
Restituisce il valore ora di dataora. | HOUR('2020-12-25 15:10:30') restituisce 15 |
LAST_DAY(date) |
Restituisce l'ultimo giorno del mese della data. | LAST_DAY('2020-12-25') restituisce 31 |
MINUTE(datetime) |
Restituisce il valore minuto della data/ora. | HOUR('2020-12-25 15:10:30') restituisce 10 |
MONTH(date) |
Restituisce il valore del mese della data. | MONTH('2020-06-25') restituisce 6 |
QUARTER(date) |
Restituisce il trimestre dell'anno in cui si trova la data. | QUARTER('2020-12-25') restituisce 4 |
SECOND(datetime) |
Restituisce il secondo valore della data/ora. | SECOND('2020-12-25 15:10:30') restituisce 30 |
TO_DATE(string, format_string[, localeStr]) |
Analizza l'espressione di stringa con l'espressione format_string in una data. Le impostazioni nazionali sono facoltative. L'impostazione predefinita è en-US . Tag lingua supportati.Nelle espressioni della pipeline,
|
|
TO_TIMESTAMP(expr, format_string[, localeStr]) |
Converte un valore expr di VARCHAR in un valore di TIMESTAMP, in base al valore format_string e al valore localeStr facoltativo fornito.Nelle espressioni della pipeline,
|
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') restituisce un oggetto TIMESTAMP che rappresenta 11am 10:10 Oct 11th, 2020 |
WEEK(date) |
Restituisce il valore della settimana della data. |
WEEK('2020-06-25') restituisce 4 |
YEAR(date) |
Restituisce il valore dell'anno della data. | YEAR('2020-06-25') restituisce 2020 |
ADD_MONTHS(date_expr, number_months) |
Restituisce la data successiva all'aggiunta del numero di mesi specificato alla data, all'indicatore orario o alla stringa specificata con un formato quale yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS . |
|
MONTHS_BETWEEN(start_date_expr, end_date_expr) |
Restituisce il numero di mesi compresi tra Viene restituito un numero intero se entrambe le date sono lo stesso giorno del mese o se entrambe sono l'ultimo giorno dei rispettivi mesi. In caso contrario, la differenza viene calcolata in base a 31 giorni al mese. |
|
FROM_UTC_TIMESTAMP(time_stamp, time_zone) |
Interpreta una data, un indicatore orario o una stringa come ora UTC e la converte in un indicatore orario nel fuso orario specificato. Per la stringa, utilizzare un formato quale: Il formato del fuso orario è un ID di zona basato sull'area (ad esempio, 'area/città' come 'Asia/Seoul' o un offset del fuso orario (ad esempio, UTC+02). |
FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') restituisce 2017-07-14 03:40:00.0 |
TO_UTC_TIMESTAMP(time_stamp, time_zone) |
Converte una data, un indicatore orario o una stringa nel fuso orario specificato in un indicatore orario UTC. Per la stringa, utilizzare un formato quale: Il formato del fuso orario è un ID di zona basato sull'area (ad esempio, 'area/città' come 'Asia/Seoul') o un offset del fuso orario (ad esempio, UTC+02). |
TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') restituisce 2017-07-14 01:40:00.0
|
FROM_UNIXTIME(unix_time[, fmt]) |
Converte l'ora o l'epoca Unix specificata in una stringa che rappresenta l'indicatore orario di quel momento nel fuso orario di sistema corrente e nel formato specificato. Nota: l'ora Unix è il numero di secondi trascorsi dal 1° gennaio 1970 alle 00:00:00 UTC. Se |
Il fuso orario predefinito è PST negli esempi |
UNIX_TIMESTAMP([time_expr[, fmt]]) |
Converte l'ora corrente o specificata in un indicatore orario Unix in secondi.
Se Se |
Il fuso orario predefinito è PST in questo esempio |
INTERVAL 'year' YEAR[(year_precision)] |
Restituisce un periodo di tempo in anni. year_precision è il numero di cifre nel campo anno. È compreso tra 0 e 9. Se year_precision viene omesso, l'impostazione predefinita è 2 (deve essere inferiore a 100 anni). |
|
INTERVAL 'year month' YEAR[(year_precision)] TO MONTH |
Restituisce un periodo di tempo in anni e mesi. Consente di memorizzare un periodo di tempo utilizzando i campi anno e mese. year_precision è il numero di cifre nel campo anno. È compreso tra 0 e 9. Se year_precision viene omesso, l'impostazione predefinita è 2 (deve essere inferiore a 100 anni). |
INTERVAL '100-5' YEAR(3) TO MONTH restituisce un intervallo di 100 anni, 5 mesi. È necessario specificare la precisione dell'anno iniziale pari a 3. |
INTERVAL 'month' MONTH[(month_precision)] |
Restituisce un periodo di tempo in mesi. month_precision è il numero di cifre nel campo mese. È compreso tra 0 e 9. Se month_precision viene omesso, l'impostazione predefinita è 2 (deve essere inferiore a 100 anni). |
INTERVAL '200' MONTH(3) restituisce un intervallo di 200 mesi. È necessario specificare la precisione del mese pari a 3. |
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)] |
Restituisce un periodo di tempo in termini di giorni, ore, minuti e secondi. day_precision è il numero di cifre nel campo giorno. È compreso tra 0 e 9. Il valore predefinito è 2. fractional_seconds_precision è il numero di cifre nella parte frazionaria del secondo valore nel campo time; è compreso tra 0 e 9. |
INTERVAL '11 10:09:08.555' DAY TO SECOND(3) restituisce un intervallo di 11 giorni, 10 ore, 09 minuti, 08 secondi e 555 millesimi di secondo |
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)] |
Restituisce un periodo di tempo in termini di giorni, ore e minuti. day_precision è il numero di cifre nel campo giorno. È compreso tra 0 e 9. Il valore predefinito è 2. minute_precision è il numero di cifre nel campo minuto, con un intervallo compreso tra 0 e 2. Il valore predefinito è 2. |
INTERVAL '11 10:09' DAY TO MINUTE restituisce un intervallo di 11 giorni, 10 ore e 09 minuti |
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)] |
Restituisce un periodo di tempo in termini di giorni e ore. day_precision è il numero di cifre nel campo giorno. È compreso tra 0 e 9. Il valore predefinito è 2. hour_precision è il numero di cifre nel campo ora; è compreso tra 0 e 2. Il valore predefinito è 2. |
INTERVAL '100 10' DAY(3) TO HOUR restituisce un intervallo di 100 giorni e 10 ore |
INTERVAL 'day' DAY[(day_precision)] |
Restituisce un periodo di tempo in termini di giorni. day_precision è il numero di cifre nel campo giorno. È compreso tra 0 e 9. Il valore predefinito è 2. |
INTERVAL '999' DAY(3) restituisce un intervallo di 999 giorni |
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)] |
Restituisce un periodo di tempo in termini di ore, minuti e secondi. hour_precision è il numero di cifre nel campo ora; è compreso tra 0 e 2. Il valore predefinito è 2. fractional_seconds_precision è il numero di cifre nella parte frazionaria del secondo valore nel campo time; è compreso tra 0 e 9. |
INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) restituisce un intervallo di 9 ore, 08 minuti e 7,66666666 secondi |
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)] |
Restituisce un periodo di tempo in termini di ore e minuti. hour_precision è il numero di cifre nel campo ora; è compreso tra 0 e 2. Il valore predefinito è 2. minute_precision è il numero di cifre nel campo minuto, con un intervallo compreso tra 0 e 2. Il valore predefinito è 2. |
INTERVAL '09:30' HOUR TO MINUTE restituisce un intervallo di 9 ore e 30 minuti |
INTERVAL 'hour' HOUR[(hour_precision)] |
Restituisce un periodo di tempo in termini di ore. hour_precision è il numero di cifre nel campo ora; è compreso tra 0 e 2. Il valore predefinito è 2. |
INTERVAL '40' HOUR restituisce un intervallo di 40 ore |
INTERVAL 'minute' MINUTE[(minute_precision)] |
Restituisce un periodo di tempo in termini di minuti. minute_precision è il numero di cifre nel campo minuto, con un intervallo compreso tra 0 e 2. Il valore predefinito è 2. |
INTERVAL '15' MINUTE restituisce un intervallo di 15 minuti |
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)] |
Restituisce un periodo di tempo in termini di minuti e secondi. minute_precision è il numero di cifre nel campo minuto, con un intervallo compreso tra 0 e 2. Il valore predefinito è 2. fractional_seconds_precision è il numero di cifre nella parte frazionaria del secondo valore nel campo time; è compreso tra 0 e 9. |
INTERVAL '15:30' MINUTE TO SECOND restituisce un intervallo di 15 minuti e 30 secondi |
INTERVAL 'second' SECOND[(fractional_seconds_precision)] |
Restituisce un periodo di tempo in termini di secondi. fractional_seconds_precision è il numero di cifre nella parte frazionaria del campo secondo; è compreso tra 0 e 9. Il valore predefinito è 3. |
INTERVAL '15.678' SECOND restituisce un intervallo di 15,678 secondi |
Funzione | descrizione; | Esempio |
---|---|---|
MD5(all data types) | Calcola un checksum MD5 del tipo di dati e restituisce un valore stringa. | MD5(column_name) |
SHA1(all data types) | Calcola un valore hash SHA-1 del tipo di dati e restituisce un valore stringa. | SHA1(column_name) |
SHA2(all data types, bitLength) | Calcola un valore hash SHA-2 del tipo di dati e restituisce un valore stringa. bitLength è un numero intero. | SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512) . |
ORA_HASH(expr, [max_bucket], [seed_value]) |
Calcola un valore hash per
Oracle applica la funzione hash alla combinazione di |
|
Funzione | descrizione; | Esempio |
---|---|---|
SCHEMA_OF_JSON(string) | Analizza una stringa JSON e inserisce lo schema in formato DDL. |
|
FROM_JSON(column, string) | Analizza una colonna contenente una stringa JSON in uno dei tipi seguenti, con lo schema specificato.
|
|
TO_JSON(column) | Converte una colonna contenente un tipo Struct o Array of Structs o Map o Array of Map in una stringa JSON. | TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) restituisce una stringa JSON {"s1":[1,2,3],"s2":{"key":"value"}} |
TO_MAP(string,column[,string,column]*) | Crea una nuova colonna di tipo Mappa. Le colonne di input devono essere raggruppate come coppie chiave-valore. Le colonne chiave di input non possono essere nulle e devono avere tutti lo stesso tipo di dati. Le colonne dei valori di input devono avere tutti lo stesso tipo di dati. |
|
TO_STRUCT(string,column[,string,column]*) | Crea una nuova colonna di tipo Struttura. Le colonne di input devono essere raggruppate come coppie chiave-valore. |
|
TO_ARRAY(column[,column]*) | Crea una nuova colonna come tipo di array. Le colonne di input devono avere tutte lo stesso tipo di dati. |
|
Gli operatori di flusso dati che supportano la creazione di espressioni e tipi di dati gerarchici possono utilizzare funzioni di ordine superiore.
Gli operatori supportati sono:
-
aggregato
-
Espressione
-
Filtro
-
Join
-
Cerca
-
Dividi
-
Pivot
Funzione | descrizione; | Esempio |
---|---|---|
TRANSFORM(column, lambda_function) | Prende un array e una funzione anonima e imposta un nuovo array applicando la funzione a ciascun elemento e assegnando il risultato all'array di output. | Per un array di input di numeri interi [1, 2, 3] , TRANSFORM(array, x -> x + 1) restituisce un nuovo array di valori [2, 3, 4] . |
TRANSFORM_KEYS(column, lambda_function) | Prende una mappa e una funzione con 2 argomenti (chiave e valore) e restituisce una mappa in cui le chiavi hanno il tipo del risultato della funzione lambda e i valori hanno il tipo dei valori della mappa delle colonne. | Per una mappa di input con chiavi interi e valori stringa di {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} , TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) restituisce una nuova mappa di {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} . |
TRANSFORM_VALUES(column, lambda_function) | Prende una mappa e una funzione con 2 argomenti (chiave e valore) e restituisce una mappa in cui i valori hanno il tipo del risultato delle funzioni lambda e i tasti hanno il tipo delle chiavi della mappa delle colonne. | Per una mappa di input con chiavi stringa e valori stringa {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} , TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) restituisce una nuova mappa di {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} . |
ARRAY_SORT(array(...), lambda_function) |
Solo l'operatore Espressione supporta Prende un array e ordina in base alla funzione specificata che accetta 2 argomenti. La funzione deve restituire -1, 0 o 1 a seconda che il primo elemento sia minore, uguale o maggiore del secondo elemento. Se la funzione viene omessa, l'array viene ordinato in ordine crescente. |
L'array restituito è: [1,5,6] |
Funzione | descrizione; | Esempio |
---|---|---|
CASE WHEN condition1 THEN result1 ELSE result2 END | Restituisce il valore per il quale viene soddisfatta una condizione. | CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END restituisce ABC se 1> 0 , altrimenti restituisce XYZ |
AND | L'operatore AND logico. Restituisce true se entrambi gli operandi sono true, altrimenti restituisce false. | (x = 10 AND y = 20) restituisce "true" se x è uguale a 10 e y è uguale a 20. Se uno dei due non è vero, restituisce "falso" |
OR | Operatore OR logico. Restituisce true se uno degli operandi è true o entrambi sono true, altrimenti restituisce false. | (x = 10 OR y = 20) restituisce "false" se x non è uguale a 10 e anche y non è uguale a 20. Se uno dei due è vero, allora restituisce "vero" |
NOT | L'operatore NOT logico. | |
LIKE | Esegue la corrispondenza dei pattern di stringa, indipendentemente dal fatto che string1 corrisponda al pattern in string2. | |
= | Test per l'uguaglianza. Restituisce true se expr1 è uguale a expr2, altrimenti restituisce false. | x = 10 restituisce "true" quando il valore di x è 10, altrimenti restituisce "false" |
!= | Test per la disuguaglianza. Restituisce true se expr1 non è uguale a expr2, altrimenti restituisce false. | x != 10 restituisce "false" se il valore di x è 10, altrimenti restituisce "true" |
> | Test per un'espressione maggiore di. Restituisce true se expr1 è maggiore di expr2. | x > 10 restituisce "true" se il valore di x è maggiore di 10, altrimenti restituisce "false" |
>= | Test per un'espressione maggiore o uguale a. Restituisce true se expr1 è maggiore o uguale a expr2. | x > =10 restituisce "true" se il valore di x è maggiore o uguale a 10, altrimenti restituisce "false" |
< | Test per un'espressione minore di. Restituisce true se expr1 è minore di expr2. | x < 10 restituisce "true" se il valore di x è minore di 10, altrimenti restituisce "false" |
<= | Test per un'espressione minore o uguale a. Restituisce true se expr1 è minore o uguale a expr2. | x <= 10 restituisce "true" se il valore di x è minore di 10, altrimenti restituisce "false" |
|| | Concatena due stringhe. | 'XYZ' || 'hello' restituisce 'XYZhello' |
BETWEEN | Valuta un intervallo. | FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007 |
IN | Verifica se un'espressione corrisponde a una lista di valori. | FILTER_2.ORDERS.ORDER_ID IN (1003, 1007) |
Funzioni | descrizione; | Esempio |
---|---|---|
CAST(value AS type) | Restituisce il valore specificato nel tipo specificato. | CAST("10" AS INT) restituisce 10 |
CONCAT(string, string) | Restituisce i valori combinati di stringhe o colonne. | CONCAT('Oracle','SQL') restituisce OracleSQL |
CONCAT_WS(separator, expression1, expression2, expression3,...) |
Restituisce i valori combinati di stringhe o colonne utilizzando il separatore specificato tra le stringhe o le colonne. È necessario un separatore e deve essere una stringa. È necessario fornire almeno un'espressione dopo il separatore. Ad esempio: |
CONCAT_WS('-', 'Hello', 'Oracle') restituisce Hello-Oracle
Se un elemento figlio della funzione è un array, l'array viene appiattito:
|
INITCAP(string) | Restituisce la stringa con la prima lettera in ogni parola maiuscola, mentre tutte le altre lettere sono minuscole e ogni parola è delimitata da uno spazio vuoto. | INITCAP('oRACLE sql') restituisce Oracle Sql |
INSTR(string, substring[start_position]) | Restituisce l'indice (basato su 1) della prima occorrenza di substring in string . | INSTR('OracleSQL', 'SQL') restituisce 7 |
LOWER(string) | Restituisce la stringa con tutte le lettere modificate in minuscolo. | LOWER('ORACLE') restituisce oracle |
LENGTH(string) | Restituisce la lunghezza del carattere della stringa o il numero di byte di dati binari. La lunghezza della stringa include gli spazi finali. | LENGTH('Oracle') restituisce 6 |
LTRIM(string) | Restituisce la stringa con gli spazi iniziali rimossi da sinistra. | LTRIM(' Oracle') |
NVL(expr1, epxr2) | Restituisce l'argomento non nullo. | NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID()) |
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) | Cerca ed estrae la stringa che corrisponde a un pattern di espressione regolare dalla stringa di input. Se viene fornito l'indice di gruppo di acquisizione facoltativo, la funzione estrae il gruppo specifico. |
REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) restituisce 22 |
REPLACE(string, search, replacement) | Sostituisce tutte le occorrenze di search con replacement .Se Se | REPLACE('ABCabc', 'abc', 'DEF') restituisce ABCDEF |
RTRIM(string) | Restituisce la stringa con gli spazi iniziali rimossi da destra. | RTRIM('Oracle ') |
SUBSTRING(string, position[, substring_length]) | Restituisce la sottostringa che inizia in posizione. | SUBSTRING('Oracle SQL' FROM 2 FOR 3) restituisce rac |
Per i numeri, TO_CHAR(expr) e per le date TO_CHAR(expr, format[, locale]) | Converte numeri e date in stringhe. Per i numeri non è richiesto alcun formato. Per le date, utilizzare lo stesso formato di DATE_FORMAT descritto in Funzioni di data e ora. La versione locale predefinita è en-US . Vedere i tag di lingua supportati.Nelle espressioni della pipeline,
| Esempio numerico: Esempio di data: |
UPPER(string) | Restituisce una stringa con tutte le lettere modificate in maiuscolo. | UPPER('oracle') restituisce ORACLE |
LPAD(str, len[, pad]) | Restituisce una stringa riempita a sinistra con caratteri specificati fino a una certa lunghezza. Se il carattere pad viene omesso, il valore predefinito è uno spazio. | LPAD('ABC', 5, '*') restituisce '**ABC' |
RPAD(str, len[, pad]) | Restituisce una stringa riempita a destra con i caratteri specificati fino a una certa lunghezza. Se il carattere pad viene omesso, il valore predefinito è uno spazio. | RPAD('XYZ', 6, '+' ) returns 'XYZ+++' |
Funzione | descrizione; | Esempio |
---|---|---|
NUMERIC_ID() | Genera un identificativo univoco universale che è un numero a 64 bit per ogni riga. | NUMERIC_ID() restituisce, ad esempio, 3458761969522180096 e 3458762008176885761 |
ROWID() | Genera numeri a 64 bit in aumento monotono. | ROWID() restituisce, ad esempio, 0 , 1 , 2 e così via |
UUID() | Genera un identificativo univoco universale che è una stringa a 128 bit per ogni riga. | UUID() restituisce, ad esempio, 20d45c2f-0d56-4356-8910-162f4f40fb6d |
MONOTONICALLY_INCREASING_ID() |
Genera numeri interi a 64 bit univoci e monotoni che non sono numeri consecutivi. | MONOTONICALLY_INCREASING_ID() restituisce, ad esempio, 8589934592 e 25769803776 |