Modifica espressioni
La modifica di un’espressione comporta l’immissione manuale di condizioni per formare una regola. Questa modalità ti consente di utilizzare funzioni avanzate, che ti consentono di manipolare i valori utilizzati per eseguire query specifiche come la manipolazione di date, stringhe, campi numerici, ordinamenti, ecc.
Utilizzare l’editor di espressioni
L'editor espressioni è disponibile dal pulsante Modifica espressione del modellatore di query, disponibile per i campi Attributo e Valore durante la configurazione di una condizione personalizzata.
Accesso dal campo Attributo | Accedi dal campo Valore |
---|---|
![]() |
![]() |
L’editor di espressioni mostra:
- Un campo di input (1) in cui è definita l'espressione.
- Elenco di campi (2) disponibili che possono essere utilizzati nell'espressione e corrispondenti alla dimensione di targeting della query.
- Funzioni helper (3), ordinate per categoria.
Modifica l’espressione immettendo un’espressione direttamente nel campo di input. Per aggiungere un campo o una funzione di supporto, posizionare il cursore nell'espressione nel punto in cui si desidera aggiungerla e fare clic sul pulsante +.
Quando l'espressione è pronta, fare clic sul pulsante Conferma. L’espressione viene visualizzata nel campo selezionato. Per modificarlo, apri l’editor di espressioni e apporta le modifiche desiderate.
L'esempio seguente mostra un'espressione configurata per il campo Value. Per modificarlo, è necessario aprire l'editor espressioni utilizzando il pulsante Modifica espressione.
Funzioni Helper
Lo strumento di modifica delle query ti consente di utilizzare funzioni avanzate per eseguire filtri complessi in base ai risultati desiderati e ai tipi di dati manipolati. Sono disponibili le seguenti funzioni:
Aggregato
Le funzioni di aggregazione vengono utilizzate per eseguire calcoli su un insieme di valori.
Nome | Descrizione | Sintassi |
Avg | Restituisce la media di una colonna di tipo numerico | Avg(<valore>) |
Conteggio | Conta i valori non nulli in una colonna | Count(<valore>) |
CountAll | Conta i valori restituiti (tutti i campi) | CountAll() |
Countdistinct | Conta i valori distinti non nulli in una colonna | Countdistinct(<valore>) |
Max | Restituisce il valore massimo in una colonna numerica, stringa o data | Max(<valore>) |
Min | Restituisce il valore minimo in una colonna numerica, stringa o data. | Min(<valore>) |
StdDev | Restituisce la deviazione standard in una colonna numerica, stringa o data | StdDev(<valore>) |
AggStringa | Restituisce la concatenazione dei valori di una colonna di tipo stringa, separati dal carattere nel secondo argomento | StringAgg(<Valore>, <Stringa>) |
Somma | Restituisce la somma dei valori in una colonna numerica, stringa o data | Sum(<valore>) |
Data
Le funzioni di data vengono utilizzate per manipolare i valori di data o ora.
Nome | Descrizione | Sintassi |
AddDays | Aggiunge un numero di giorni a una data | AddDays(<data>, <numero>) |
AddHours | Aggiunge un numero di ore a una data | AddHours(<data>, <numero>) |
AddMinutes | Aggiunge un numero di minuti a una data | AddMinutes(<data>, <numero>) |
AddMonths | Aggiunge un numero di mesi a una data | AddMonths(<data>, <numero>) |
AddSeconds | Aggiunge un numero di secondi a una data | AddSeconds(<data>, <numero>) |
AddYears | Aggiunge un numero di anni a una data | AddYears(<data>, <numero>) |
ConvertNTZ | Converte la marca temporale NTZ (marca temporale senza fuso orario) in TZ (marca temporale con fuso orario) applicando la sessione definita TZ | ConvertNTZ (<data+ora>) |
CmpData | Confronta due date | DateCmp(<data>,<data>) |
DateOnly | Restituisce solo la data (con l’ora su 00.00)* | DateOnly(<data>) |
Day | Restituisce il numero che rappresenta il giorno della data | Day(<data>) |
DayOfYear | Restituisce un numero del giorno dell’anno della data | DayOfYear(<data>) |
DaysAgo | Restituisce la data corrispondente alla data corrente meno n giorni | DaysAgo(<numero>) |
DaysAgoInt | Restituisce la data corrispondente (numero intero aaaammgg) alla data corrente meno n giorni | DaysAgoInt(<numero>) |
DaysDiff | Numero di giorni tra due date | DaysDiff(<data di fine>, <data di inizio>) |
DaysOld | Restituisce l’età in giorni di una data | DaysOld(<data>) |
GetDate | Restituisce la data di sistema corrente del server | GetDate() |
Hour | Restituisce l’ora della data | Hour(<data>) |
HoursDiff | Restituisce il numero di ore tra due date | HoursDiff(<data di fine>, <data di inizio>) |
Minute | Restituisce i minuti della data | Minute(<data>) |
MinutesDiff | Restituisce il numero di minuti tra due date | MinutesDiff(<data di fine>, <data di inizio>) |
Month | Restituisce il numero che rappresenta il mese della data | Month(<data>) |
MonthsAgo | Restituisce la data corrispondente alla data corrente meno n mesi | MonthsAgo(<numero>) |
MonthsDiff | Restituisce il numero di mesi tra due date | MonthsDiff(<data di fine>, <data di inizio>) |
MonthsOld | Restituisce l’età in mesi di una data | MonthsOld(<data>) |
Oldest | Restituisce la data meno recente in un intervallo | Oldest (<data, data>) |
Second | Restituisce i secondi della data | Second(<data>) |
SecondsDiff | Restituisce il numero di secondi tra due date | SecondsDiff(<data di fine>, <data di inizio>) |
SubDays | Sottrae un numero di giorni da una data | SubDays(<data>, <numero>) |
SubHours | Sottrae un numero di ore da una data | SubHours(<data>, <numero>) |
SubMinutes | Sottrae un numero di minuti da una data | SubMinutes(<data>, <numero>) |
SubMonths | Sottrae un numero di mesi da una data | SubMonths(<data>, <numero>) |
SubSeconds | Sottrae un numero di secondi da una data | SubSeconds(<data>, <numero>) |
SubYears | Sottrae un numero di anni da una data | SubYears(<data>, <numero>) |
ToDate | Converte una data + ora in una data | ToDate(<data + ora>) |
ToDateTime | Converte una stringa in una data + ora | ToDateTime(<stringa>) |
ATimestamp | Converte una stringa in una marca temporale | ToTimestamp(<stringa>) |
ToTimeZone | Convertire una data + ora in fuso orario | ToTimeZone(<data>,<fuso orario>) |
TruncDate | Arrotonda una data+ora al secondo più vicino | TruncDate(@lastModified, <numero di secondi>) |
TruncDateTZ | Arrotonda una data + ora a una determinata precisione, espressa in secondi | TruncDateTZ(<data>, <numero di secondi>, <fuso orario>) |
TruncQuarter | Arrotonda una data al trimestre | TruncQuarter(<data>) |
TruncTime | Arrotonda la parte dell’ora al secondo più vicino | TruncTime(<data>, <numero di secondi>) |
TruncWeek | Arrotonda una data alla settimana | TruncWeek(<data>) |
TruncYear | Arrotonda una data + ora al 1° gennaio dell’anno | TruncYear(<data>) |
WeekDay | Restituisce un numero che rappresenta il giorno della settimana della data (0=lunedì, 6=domenica) | WeekDay(<data>) |
Year | Restituisce il numero che rappresenta l’anno della data | Year(<data>) |
YearAnd Month | Restituisce il numero che rappresenta l’anno e il mese della data | YearAndMonth(<data>) |
YearsAgo | Restituisce il numero di anni tra una data specificata e la data corrente | YearsAgo(<data>) |
YearsDiff | Restituisce il numero di anni tra le due date | YearsDiff(<data di fine>, <data di inizio>) |
YearsOld | Restituisce l’età in anni di una data | YearsOld(<data>) |
Geomarketing
Le funzioni di geomarketing vengono utilizzate per manipolare i valori geografici.
Nome | Descrizione | Sintassi |
Distance | Restituisce la distanza tra due punti definiti da longitudine e latitudine espressa in gradi. | Distance(<Longitudine A>, <Latitudine A>, <Longitudine B>, <Latitudine B>) |
Numerico
Le funzioni numeriche vengono utilizzate per convertire il testo in numeri.
Nome | Descrizione | Sintassi |
Abs | Restituisce il valore assoluto di un numero | Abs(<numero>) |
Ceil | Restituisce il numero intero più piccolo maggiore o uguale a un numero | Ceil(<numero>) |
Floor | Restituisce il numero intero maggiore o uguale a un numero | Floor(<numero>) |
Greatest | Restituisce il numero maggiore tra due numeri | Greatest(<numero 1>, <numero 2>) |
Least | Restituisce il minore tra due numeri | Least(<numero 1>, <numero 2>) |
Mod | Restituisce il resto della divisione del numero intero da n1 per n2 | Mod(<numero 1>, <numero 2>) |
Percent | Restituisce il rapporto tra due numeri espresso come percentuale | Percent(<numero 1>, <numero 2>) |
Random | Restituisce il valore casuale | Random() |
Round | Arrotonda un numero a n decimali | Round(<numero>, <numero di decimali>) |
Sign | Restituisce il segno del numero | Sign(<numero>) |
ToDouble | Converte un numero intero in un numero in virgola mobile | ToDouble(<numero>) |
ToInt64 | Converte un numero in virgola mobile in un numero intero a 64 bit | ToInt64(<numero>) |
ToInteger | Converte un numero in virgola mobile in un numero intero | ToInteger(<numero>) |
Trunc | Tronca n1 a n2 decimali | Trunc(<n1>, <n2>) |
Altri
Questa tabella contiene le altre funzioni disponibili.
Nome | Descrizione | Sintassi |
AESEncrypt | Stringa di crittografia fornita nell'argomento | AESEncrypt(<valore>) |
Case | Restituisce il valore 1 se la condizione è vera. In caso contrario, restituisce il valore 2. | Case(When(<condizione>, <valore 1>), Else(<valore 2>)) |
ClearBit | Elimina il contrassegno nel valore | ClearBit(<identificatore>, <contrassegno>) |
Coalesce | Restituisce il valore 2 se il valore 1 è zero o nullo, altrimenti restituisce il valore 1 | Coalesce(<valore 1>, <valore 2>) |
Decode | Restituisce il valore 3 se il valore 1 = al valore 2. In caso contrario, restituisce il valore 4. | Decode(<valore 1>, <valore 2>, <valore 3>, <valore 4>) |
Else | Restituisce il valore 1 (può essere utilizzato solo come parametro della funzione Case) | Else(<valore 1>, <valore 2>) |
GetEmailDomain | Estrae il dominio da un indirizzo e-mail | GetEmailDomain(<valore>) |
GetMirrorURL | Recupera l’URL del server della pagina mirror | GetMirrorURL(<valore>) |
Iif | Restituisce il valore 1 se l’espressione è vera. In caso contrario, restituisce il valore 2 | Iif(<condizione>, <valore 1>, <valore 2>) |
IsBitSet | Indica se il contrassegno si trova nel valore | IsBitSet(<identificatore>, <contrassegno>) |
IsEmptyString | Restituisce il valore 2 se la stringa è vuota, altrimenti restituisce il valore 3 | IsEmptyString(<valore 1>, <valore 2>, <valore 3>) |
NuovoUUID | Restituisce un ID univoco | NewUUID() |
NoNull | Restituisce la stringa vuota se l’argomento è NULL | NoNull(<valore>) |
RowId | Restituisce il numero di riga | RowId |
SetBit | Forza il contrassegno nel valore | SetBit(<identificatore>, <contrassegno>) |
ToBoolean | Converte un numero in booleano | ToBoolean(<numero>) |
When | Restituisce il valore 1 se l’espressione è vera. In caso contrario, restituisce il valore 2 (può essere utilizzato solo come parametro della funzione Case) | When(<condizione>, <valore 1>) |
Stringa
Le funzioni di stringa vengono utilizzate per manipolare un insieme di stringhe.
Nome | Descrizione | Sintassi |
AllNonNull2 | Indica se tutti i parametri non sono nulli e non sono vuoti | AllNonNull2(<stringa>, <stringa>) |
AllNonNull3 | Indica se tutti i parametri non sono nulli e non sono vuoti | AllNonNull3(<stringa>, <stringa>, <stringa>) |
Ascii | Restituisce il valore ASCII del primo carattere della stringa | Ascii(<stringa>) |
Char | Restituisce il carattere corrispondente al codice ASCII “n” | Char(<numero>) |
Charindex | Restituisce la posizione della stringa 2 nella stringa 1. | Charindex(<stringa>, <stringa>) |
dataLength | Restituisce la dimensione in byte della stringa | dataLength(<stringa>) |
GetLine | Restituisce l’ennesima riga (da 1 a n) della stringa | GetLine(<stringa>) |
IfEquals | Restituisce il terzo parametro se i primi due parametri sono uguali. In caso contrario, restituisce l’ultimo parametro | IfEquals(<stringa>, <stringa>, <stringa>, <stringa>) |
IsMemoNull | Indica se il promemoria passato come parametro è nullo | IsMemoNull(<promemoria>) |
JuxtWords | Concatena le stringhe passate come parametri. Se necessario, aggiunge spazi tra le stringhe. | JuxtWords(<stringa>, <stringa>) |
JuxtWords3 | Concatena le stringhe passate come parametri. Se necessario, aggiunge spazi tra le stringhe | JuxtWords3(<stringa>, <stringa>, <stringa>) |
Left | Restituisce i primi n caratteri della stringa | Left(<stringa>, <numero>) |
Length | Restituisce la lunghezza della stringa | Length(<stringa>) |
Riga | Estrai riga n dalla stringa | Line(<stringa>,<numero>) |
Lower | Restituisce la stringa in caratteri minuscoli | Lower(<stringa>) |
LPad | Restituisce la stringa completata a sinistra | LPad (<Stringa>, <Numero>, <Carattere>) |
Ltrim | Rimuove gli spazi a sinistra della stringa | Ltrim(<stringa>) |
Md5Digest | Restituisce una rappresentazione esadecimale della chiave MD5 di una stringa | Md5Digest(<stringa>) |
MemoContains | Specifica se il promemoria contiene la stringa passata come parametro | MemoContains(<promemoria>, <stringa>) |
ValoreNodo | Estrae il valore di un campo XML dal relativo XPath e dai dati del campo | NodeValue (<Stringa>, <Stringa>) |
Replace | Sostituisce tutte le occorrenze di un valore di stringa specificato con un altro valore di stringa. | Replace(<Stringa>,<Stringa>,<Stringa>) |
Right | Restituisce gli ultimi n caratteri della stringa | Right(<stringa>) |
RPad | Restituisce la stringa completata a destra | RPad(<stringa>, <numero>, <carattere>) |
Rtrim | Rimuove gli spazi a destra della stringa | Rtrim(<stringa>) |
Sha256Digest | Rappresentazione esadecimale della chiave SHA256 di una stringa. | Sha256Digest (<Stringa>) |
Sha512Digest | Rappresentazione esadecimale della chiave SHA512 di una stringa. | Sha512Digest (<Stringa>) |
Smart | Restituisce la stringa con la prima lettera di ciascuna parola in maiuscolo | Smart(<stringa>) |
Substring | Estrae la stringa secondaria a partire dal carattere n1 della stringa e con una lunghezza n2 | Substring(<stringa>, <offset>, <lunghezza>) |
ToString | Converte il numero in una stringa | ToString(<numero>, <numero>) |
Upper | Restituisce la stringa in caratteri maiuscoli | Upper(<stringa>) |
VirtualLink | Restituisce la chiave esterna di un collegamento passato come parametro se gli altri due parametri sono uguali | VirtualLink(<numero>, <numero>, <numero>) |
VirtualLinkStr | Restituisce la chiave esterna (testo) di un collegamento passato come parametro se gli altri due parametri sono uguali | VirtualLinkStr(<stringa>, <numero>, <numero>) |
Finestra
Nome | Descrizione | Sintassi |
_Over__ | Esegui la chiamata alla funzione SQL immessa come primo parametro, su Partition o Order By nei campi immessi come secondo parametro | _Over_ (<Valore>, <Valore>) |
Desc | Applica un ordinamento decrescente | Desc(<valore 1>) |
OrderBy | Ordina il risultato all’interno della partizione | OrderBy(<valore 1>) |
PartitionBy | Partiziona il risultato di una query su una tabella | PartitionBy(<valore 1>) |
RowNum | Genera un numero di riga basato sulla partizione della tabella e su una sequenza di ordinamento. | RowNum(PartitionBy(<valore 1>), OrderBy(<valore 1>)) |