Guida dell'utente di Spotfire®

Funzioni logiche

L'elenco seguente mostra le funzioni logiche utilizzabili nelle espressioni.

FunzioneDescrizione
CaseL'istruzione case presenta due diverse forme.

Semplice:

case Arg1 when Arg2 then Arg3 else Arg4 end

L'espressione Arg1 viene valutata e se Arg1 è uguale ad Arg2, viene restituito Arg3.Possono essere inserite e valutate diverse espressioni when/then in ordine da sinistra e destra.

Cercato:

case when Arg1 then Arg2 else Arg3 end

Restituisce Arg2 se Arg1=true e Arg3 se Arg1=false.Possono essere inserite diverse espressioni

when/then che verranno valutate da sinistra e destra.

Vedere di seguito per ulteriori informazioni.

Esempio:

case when 1 < 2 then "a" when 1 < 3 then "b" else "c" end

case [Column] when 3 then "a" when 2 then "b" else "c" end

Per ulteriori esempi, vedere Colonne calcolate basate sulle condizioni.

If(Arg1,Arg2,Arg3) Restituisce Arg2 se Arg1=true e Arg3 se Arg1=false.Arg1 è di tipo boolean, solitamente il risultato di un confronto.Arg2 e Arg3 possono essere di qualsiasi tipo, ma entrambi devono essere dello stesso tipo o null.

Il secondo e il terzo argomento elaborano soltanto i subset delle righe e hanno effetto sui metodi basati su colonna e di accumulo.Vedere di seguito per ulteriori informazioni.

Esempi:

If([Count] > 3, "many", "few")

If(true, null, null) -> (Vuoto)

If(true, 1, null) -> 1

If(false, null, 2) -> 2

If(null, 1, 2) -> (Vuoto)

If(1 < 2, "Small", "Big")-> Small

If([Column] Is Null,"0","has value")

Per ulteriori esempi, vedere Colonne calcolate basate sulle condizioni.

Is Not Null Utilizzato in un'istruzione If o Case per determinare se un'espressione genera o meno un valore vuoto (valore null).

Esempio:

If([Column] Is Not Null, "value was not null", "value was null")

Se un'espressione contiene valori vuoti (valori null), è possibile utilizzare la funzione SN (vedere Funzioni di conversione) per sostituire i valori null con il valore specificato.

Is Null

Utilizzato in un'istruzione If o Case per determinare se un'espressione genera o meno un valore vuoto (valore null).

Esempio:

If([Column] Is Null, "value was null", "value was not null")

Se un'espressione contiene valori vuoti (valori null), è possibile utilizzare la funzione SN (vedere Funzioni di conversione) per sostituire i valori null con il valore specificato.

Ulteriori informazioni sull'utilizzo di if nelle espressioni:

Quando si utilizza un'istruzione if in un'espressione, la condizione nel primo argomento limita i valori da valutare nel terzo argomento.Per comprenderne il funzionamento, prendiamo come esempio una semplice colonna di numeri interi:

Col1
1
2
3

Inserire una colonna calcolata utilizzando la seguente espressione:

if(Col1 < 2, Max(Col1), Max(Col1))

Il risultato dell'espressione sarà una nuova colonna con due valori diversi: uno sarà il valore max per tutti i valori minori di 2 e l'altro sarà il valore max per i valori rimanenti (che è anche il valore max dell'intera colonna).

Col1if(Col1 < 2, Max(Col1), Max(Col1))
11
23
33

La funzione If è studiata per dividere la colonna in due gruppi e continuare quindi a valutare l'espressione sui nuovi gruppi.

Se si utilizza, invece, un'espressione Percentile, si otterranno risultati diversi sulla stessa espressione percentile a seconda del modo in cui la prima condizione ha diviso la colonna:

Col2
1
2
3
4
5
6
7
8
9
10

Inserire due colonne utilizzando la seguente espressione:

if (Col2 < 4, 0, Percentile(Col2, 70))

if (Col2 < 6, 0, Percentile(Col2, 70))

Si ottiene quindi il seguente risultato:

Col2if (Col2 < 4, 0, Percentile(Col2, 70)) if (Col2 < 6, 0, Percentile(Col2, 70))
100
200
300
48,20
58,20
68,28,8
78,28,8
88,28,8
98,28,8
108,28,8
Come si può vedere, il valore del percentile cambierà a seconda del modo in cui "If" ha raggruppato i dati.

Ulteriori informazioni sull'utilizzo di case nelle espressioni:

Quando si lavora con espressioni case, la condizione dopo "when" viene calcolata sull'intera colonna.L'argomento dopo "then" viene calcolato sulle righe definite dalla condizione "when".Se l'espressione include più coppie "when- then", un "then" è limitato da tutte le condizioni precedenti oltre che dall'ultima.

Un esempio che utilizza una semplice colonna di numeri interi:

Col1
1
2
3
4
5
6
7
8

Inserire due colonne calcolate, chiamate Case Min e Case Max, utilizzando le seguenti espressioni:

Case Min:

case 
		when [Col1]<Avg([Col1]) then Min([Col1]) 
		when [Col1]<(Avg([Col1]) + 1) then Min([Col1]) 
		else Min([Col1]) 
end

Case Max:

case
		when [Col1] < Avg([Col1]) then Max([Col1])
		when [Col1] < (Avg([Col1]) + 1) then Max([Col1])
		else Max([Col1]) 
end

Il risultato sarà:

Col1Case MinCase Max
114
214
314
414
555
668
768
868
Vedere anche Funzioni.