Skip To Content

Calcolare valori campo

I calcoli del campo consentono al proprietario del feature layer hosted o ad un amministratore dell’organizzazione di modificare contemporaneamente i valori di ogni riga per un campo specifico nella tabella degli attributi di un layer.

Ad esempio, se si dispone di un feature layer hosted che memorizza informazioni sulle vendite di proprietà, inclusi il prezzo di vendita e l'aliquota fiscale per la posizione della proprietà, è possibile aggiungere un campo al layer per archiviare le imposte stimate sul patrimonio. Per compilare il campo estimated_property_taxes, definire un'espressione di calcolo per il campo che accetta i valori nel campo sale_price e li moltiplica per i valori di tax_rate.

Si hanno due opzioni per scrivere espressioni di calcolo su campi in layer in un feature layer hosted:

  • ArcGIS Arcade:Arcade è ideale per i calcoli che richiedono più funzionalità che SWL, in quanto Arcade fornisce accesso ai valori di attributi e geometria di feature, consentendo di creare espressioni che includono operazioni spaziali. Inoltre, se si verifica un errore durante il calcolo di una determinata riga, è possibile arrestarsi e risolvere il problema per riavviare il calcolo dopo aver risolto il problema.

    Nota:

    È necessario abilitare la modifica sul layer da usare Arcade per calcoli, ma il layer non può avere la sincronizzazione abilitata. Per ulteriori informazioni su come cambiare le impostazioni di Modifica e Sincronizza, consultare Gestire Feature Layer hosted.

  • SQL: utilizzare SQL per le prestazioni più veloci con calcoli che possano essere eseguiti con espressioni SQL (SQL-92) standardizzate su attributi non spaziali. È possibile eseguire SQL su feature layer hosted abilitati per la sincronizzazione e layer configurati per tenere traccia dei creatori e degli editor di feature, mentre non è possibile eseguire espressioni Arcade su tali layer.

La sezione seguente spiega come calcolare i valori per un campo dalla pagina dell'elemento di un feature layer ospitato. Le sezioni successive forniscono alcuni esempi dei calcoli più comuni.

Calcolare valori per un campo

Seguire questi passaggi per calcolare valori di stringa, numerici o data in un campo.

Nota:
Il calcolo dei campi non può essere annullato. Per questo motivo, è opportuno aggiungere un campo, calcolarne il valore e verificare che il calcolo sia quello desiderato. In caso affermativo, è possibile calcolare che il campo originale sia uguale al campo aggiunto. Una volta verificato che i valori siano corretti nel campo originale, è possibile eliminare il campo aggiunto.

  1. Dalla pagina dell'elemento del layer, fare clic sulla scheda Dati per visualizzare la tabella.
    Suggerimento:

    È inoltre possibile eseguire questa procedura dalla tabella in Map Viewer Classic.

  2. Fare clic sulla colonna contenente i valori che si desidera calcolare.
  3. Eseguire una delle seguenti operazioni per aprire la finestra di dialogo Calcola campo:
    • Fare clic su Calcola.
    • Fare clic su Mostra vista dettagliata > Calcola.
  4. Scegliere la lingua da utilizzare per il calcolo, Arcade o SQL.

    Se il feature layer ospitato è abilitato per la sincronizzazione o è configurato per tenere traccia di coloro che creano e aggiornano le feature, questa pagina non viene visualizzata. Al suo posto viene visualizzata la finestra SQL.

  5. Comporre un'espressione di calcolo.
    • Per SQL, utilizzare operatori di base, elenco campi e funzioni. Fare clic sul pulsante Convalida per assicurarsi che non vi siano errori nell’espressione. Se l'espressione non è valida, fare clic sul pulsante Rimuovi e comporne una nuova. Quando l’espressione è completa e valida, fare clic su Calcola.
    • Per Arcade, usare variabili globali, funzioni e costanti. Fare clic su OK per eseguire l'espressione. Se si verifica un errore quando si esegue l'espressione, è possibile fare clic su Revisione errore per aprire la finestra dell'espressione, in modo da poter correggere l'errore. In caso contrario, fare clic su Annulla. Se si corregge l'espressione e la si esegue di nuovo, il calcolo si riavvia.

Il tempo necessario per il completamento del calcolo dipende dalla complessità dell'espressione e dal numero di feature nel layer.

Esempi di calcoli

Le sezioni seguenti forniscono esempi di sintassi o metodi per l'esecuzione di calcoli comuni in ArcGIS Enterprise.

Eseguire un'operazione matematica con i valori numerici di due campi esistenti per popolare un terzo campo

Uno dei calcoli più comuni da eseguire consiste nel derivare un nuovo valore numerico in base a valori esistenti nel feature layer. Ad esempio, si può sottrarre il totale delle vendite di un anno per tutti i punti vendita dal totale delle vendite di un altro anno per trovare la differenza di profitto da un anno all'altro, oppure dividere il numero totale di residenti di età inferiore ai 18 anni per il totale della popolazione per determinare la frazione di popolazione di età inferiore a 18 anni.

Esempi Arcade

Calcolare la differenza tra i valori di due campi numerici, Sales2016 e Sales2017, per compilare un campo numerico.

$feature.Sales2016 - $feature.Sales2017

Esempi di SQL

Usare il calcolo in un campo numerico (SalesDifference) per trovare la differenza tra i valori nei campi numerici Sales2016 e Sales2017.

Sales2016 - Sales2017

Compilare un campo numerico con un numero decimale che è il risultato del calcolo della porzione di popolazione di età inferiore a 18 anni.

PopUnder18/TotalPop

Concatenare valori stringa da campi esistenti in un nuovo campo stringa

Un altro calcolo che popola un nuovo campo comporta la combinazione di valori da campi stringa esistenti. Ad esempio, se si dispone di due campi stringa per la posizione delle stanze in un hotel (Floor e Room) e si desidera combinarli in un campo stringa che li contiene entrambi.

Negli esempi seguenti, i valori dei campi Floor e Room piano saranno combinati in un unico campo.

Esempio Arcade

Concatenate($feature.room,$feature.floor)

Esempio di SQL

CONCAT(Floor,Room)

Eliminare gli spazi finali o iniziali dai campi stringa

Quando si digitano o si incollano i valori in un campo che si sta modificando, è possibile che si commettano errori o che si lasci uno spazio finale o iniziale nel testo. È possibile eliminare questi errori limando i valori.

In questi esempi, l'editor ha lasciato uno spazio aggiuntivo quando ha incollato New Hampshire nel campo dei nomi degli stati, pertanto occorre eliminare lo spazio dalla fine della stringa.

Esempio Arcade

Trim('New Hampshire ')

Esempio di SQL

Trim(TRAILING ' ' FROM 'New Hampshire ')

Compilare un campo con valori diversi a seconda dei valori in un altro campo

A volte il valore che si desidera aggiungere in un campo varia in base alla feature e dipende da un altro valore presente nella stessa feature. Ad esempio, è possibile aggiungere un campo stringa al feature layer per memorizzare il testo che descrive un valore stringa numerico o abbreviato in un altro campo. Come l'interfaccia di calcolo SWL non supporta questo, usare Arcade per questi tipi di calcoli.

Esempio Arcade

L'esempio di seguito scrive in modo condizionale diversi valori stringa (Nessuno, Basso, Alto o Altro) in un campo di testo basato su un numero in un altro campo nel layer (HowMany).

When(
  $feature.HowMany == 0, "None",
  $feature.HowMany == 1, "Low",
  $feature.HowMany == 2,  "High",
"Other")

Usa un filtro in Map Viewer Classic

Se non si desidera usare un'espressione Arcade, è possibile applicare un filtro al layer nella mappa, calcolare i valori per le feature filtrate, rimuovere quel filtro, applicare un altro filtro basato su un valore differente e calcolare i valori per quei campi. Tutto ciò è nella procedura descritta di seguito.

Ad esempio, se si dispone di un campo numerico che registra i tipi di punti vendita utilizzando i codici (3, 2 e 1) e si desidera un campo stringa che enumeri ciò che ciascuno di questi codici rappresenta (catena, franchising e negozio indipendente), è possibile aggiungere un campo stringa al layer, aggiungere il layer alla mappa, filtrare per ciascun valore del codice e calcolare il valore del campo stringa.

  1. Aggiungere un campo stringa al feature layer hosted. Impostare la lunghezza in modo da poter contenere la stringa più lunga che verrà memorizzata.

    Nell'esempio del tipo di punto vendita, il nuovo nome del campo è TypeFull.

  2. Nella scheda Panoramica della pagina dell'elemento del layer, fare clic su Apri in Map Viewer Classic.
  3. Definire un filtro nel layer in modo che nella mappa siano presenti solo le feature dello stesso tipo.

    Nell'esempio dei punti vendita, applicare un filtro che restituisce solo le feature per le quali il valore del campo StoreCode è 3.

  4. Aprire la tabella degli attributi per il layer.
  5. Fare clic sul nome del campo aggiunto nel punto 1, quindi fare clic su Calcola.

    Ad esempio, fare clic sul nome TypeFull, quindi fare clic su Calcola.

  6. Digitare la stringa che si desidera inserire in questo campo per queste feature. Racchiudere la stringa all'interno di virgolette.

    Digitare 'catena' per compilare il TypeFull campo tutte le feature che hanno un StoreCode valore uguale a 3.

  7. Fare clic su Calcola.
  8. Rimuovere il filtro definito al punto 3. Aprire la finestra Filtro del layer e cliccare su Rimuovi filtro.
  9. Ripetere i punti da 3 a 8 per i restanti valori da calcolare.

    Nell'esempio dei punti vendita, definire un filtro per StoreCode uguale a 2 e calcolare TypeFull per i punti vendita 'franchising'. Rimuovere il filtro, definire un nuovo filtro per StoreCode uguale a 1 e calcolare TypeFull per i punti vendita 'indipendenti'.

  10. Quando si finisce di calcolare i valori per il nuovo campo, chiudere la mappa senza salvarla.

Sostituire un valore con un altro

Se è necessario sostituire un valore esistente con un altro, ad esempio, se il modo in cui si rappresenta un determinato valore è stato modificato o è necessario correggere i valori digitati erroneamente, è possibile trovare tutti i valori esistenti per un campo e sostituirli con un nuovo valore. Come l'interfaccia di calcolo SWL non supporta questo, usare Arcade per questi tipi di calcoli.

Attenzione:

I calcoli vengono salvati immediatamente nel feature layer. Se si sovrascrive un valore esistente per errore, sarà necessario eseguire nuovamente il calcolo per modificare il valore.

Esempio Arcade

Questo esempio usa la funzione Sostituisci per cambiare l'ortografia britannica (colore) con l'ortografia statunitense.

Replace($feature.color, 'colour', 'color')

Usa un filtro in Map Viewer Classic

Analogamente al modo in cui si compilerebbe un campo in base ai valori in un altro campo, è possibile applicare un filtro al layer in che restituisce solo le feature contenenti il valore del campo da sostituire. Successivamente, impostare i campi filtrati in modo che corrispondano al nuovo valore per aggiornare i valori dei campi.

Ad esempio, se occorre correggere i valori digitati in modo errato o convertire una parola in un'abbreviazione, filtrare la stringa letterale da modificare e impostare il campo in modo che corrisponda al nuovo valore.

  1. Aggiungi il feature layer hosted da aggiornare a Map Viewer Classic.

    Occorre essere il proprietario del layer o un amministratore del portale.

  2. Definire un filtro nel layer in modo che nella mappa siano mostrate solo le feature contenenti il valore da sostituire.

    Ad esempio se si sa che un certo numero di feature contengono Crt valori per il campo StreetType, applicare un filtro che restituisca solo le feature per le quali StreetType il valore del campo è Crt.

  3. Aprire la tabella degli attributi per il layer.
  4. Fare clic sul nome del campo, quindi su Calcola.

    Ad esempio cliccare sul campo StreetType, quindi cliccare su Calcola.

  5. Digitare la stringa che si desidera inserire in questo campo per queste feature. Racchiudere la stringa all'interno di virgolette.

    Digitare 'Ct' per compilare i campi filtrati StreetType con l'abbreviazione corretta per Court.

  6. Fare clic su Calcola per applicare le modifiche ai campi filtrati.
  7. Chiudere la mappa senza salvarla.

Determina la densità di un attributo numerico per feature areali

Per calcolare la densità di un attributo in un'area, usare un'espressione Arcade, dato che non è possibile eseguire i calcoli SQL sul campo spaziale dall'interfaccia del calcolo.

Esempio Arcade

Questo esempio determina la densità di popolazione per feature dividendo il valore totale della popolazione (TotalPop) per l'area in miglia quadrate della feature poligonale:

$feature.TotalPop / Area ($feature,
'square-miles')

Derivare la coordinata per una feature puntuale

È possibile usare un'espressione Arcade per restituire le coordinate di longitudine e latitudine per i campi spaziali in un layer feature hosted che contiene solo punti.

Questo tipo di calcolo non è supportato per i campi spaziali nell'interfaccia di calcolo.

Esempio Arcade

In questo esempio viene calcolato un campo per la coordinata x per ogni punto in un layer puntuale usando la funzione Geometria.

Geometry($feature).x

Aggiungere o sottrarre tempo da una data

Potrebbe essere necessario aggiungere o sottrarre tempo da un campo data o un valore letterale data per produrre un campo data aggiornato. Ad esempio, è possibile calcolare una data di ispezione o revisione futura aggiungendo tempo a una data.

Esempio Arcade

In questo esempio viene usata la funzione DateAdd per aggiungere sette giorni a una data e ottenere la data della settimana successiva.

var startDate = Date($feature.dateField);
var oneWeekLater = DateAdd(startDate, 7, 'days');
return oneWeekLater;

Esempi di SQL

Usare un’interrogazione INTERVALLO per aggiungere o sottrarre tempo da un campo data, come mostrato nei seguenti calcoli. Il primo esempio aggiunge tre giorni a una data per ottenere una nuova data. Il secondo esempio sottrae tre giorni da un campo di indicatori data.

<DateField> + INTERVAL '3'DAY = updated date
<DateField> - INTERVAL '3 00:00:60' DAY TO SECOND = updated date

È possibile usare INTERVALLO con i seguenti valori di data e ora:

  • GIORNO
  • ORA
  • MINUTO
  • SECONDO
  • DA GIORNO A ORA
  • DA GIORNO A MINUTO
  • DA GIORNO A SECONDO
  • DA ORA A MINUTO
  • DA ORA A SECONDO
  • DA MINUTO A SECONDO

Calcolare la differenza fra due date

Potrebbe essere necessario calcolare l'intervallo di tempo tra due date. Ad esempio, se si dispone delle date di installazione di contatori elettrici e anche delle date di ispezione, è possibile calcolare la differenza tra le date per verificare che l'intervallo di tempo tra l'installazione e l'ispezione rispetti le linee guida ammissibili. Il risultato del calcolo è un campo numerico anziché un campo data.

Esempio Arcade

Nell'esempio seguente viene usata la funzione DateDiff per calcolare l'età di una persona trovando la differenza tra una data corrente (endDate) e la data di nascita della persona (startDate):

var startDate = Date($feature.startDateField);
var endDate = Date($feature.endDateField);
var age = DateDiff(endDate, startDate, 'years');
return age;

Esempi di SQL

Qualsiasi combinazione di campi data e valori letterali data può essere utilizzata per calcolare l'intervallo di tempo tra due date. Il primo calcolo sottostante utilizza un campo data, mentre il secondo utilizzata un valore letterale data. Il terzo e il quarto calcolo utilizzano sia un campo data sia un valore letterale data.

<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2>  = number of days in between

Il risultato è un campo numerico che viene calcolato sottraendo un campo data o valore letterale da un altro campo data o valore letterale. Il risultato numerico (in giorni) può essere un numero intero e anche includere una frazione. Ad esempio, 1,5 rappresenta un giorno e mezzo o 36 ore.

Nell'esempio di ispezione del contatore elettrico citato in precedenza, qualsiasi calcolo può essere utilizzato per calcolare l'intervallo di tempo tra una data di installazione di 6/1/2015 e una data di ispezione di 10/1/2015. Il primo calcolo utilizza campi data, il secondo utilizza valori letterali data e il terzo e il quarto utilizzando sia un campo data sia un valore letterale data.

<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)

Considerazioni sul calcolo dei valori di campo

  • Se hai un filtro sul tuo layer nella mappa, solo i record che soddisfano i criteri del filtro avranno i loro valori calcolati.
  • Quando si scrivono espressioni SQL, Calcola campo funziona solo con i nomi di campo e non con gli alias. Nell'elenco Campi sono visualizzati tutti i nomi di campi disponibili per i calcoli. È possibile filtrare questo elenco per tipi di campo Stringa, Numerico e Data.
    • Se si passa con il puntatore del mouse su un nome di campo nell'elenco Campi, verranno visualizzati l'alias e il tipo di campo.
    • Se si fa clic su un nome di campo nell'elenco Campi, il campo verrà aggiunto all'espressione.
  • Non è possibile calcolare valori campo in copie di feature layer hosted, feature layer hosted con Tile Layer correlati, hosted spatiotemporal feature layer o viste create da hosted spatiotemporal feature layer.
  • Durante il calcolo di valori di campo sono supportate solo le interrogazioni SQL standardizzate.
  • Non è possibile utilizzare la funzione numerica MOD su campi doppi. Convertire il campo in un numero intero come mostrato nell’esempio.
  • Non è possibile scrivere espressioni Arcade per layer feature hosted che hanno la sincronizzazione abilitata o sono configurati per tracciare chi ha creato e aggiornato l'ultima volta le feature.
  • Non è possibile utilizzare Arcade per calcolare i valori per i seguenti tipi di dati di campo nella pagina dell'elemento del feature layer:
    • Intero grande
    • Solo data
    • Solo ora

    Nota:
    Quando un feature layer ospitato contiene questi tipi di dati, i calcoli di Arcade sono disabilitati per l'intero feature layer ospitato, inclusi i sublayer che non contengono tipi di dati non supportati.

Riferimento SQL (SQL-92) standardizzato

Quando si scrive un'espressione SQL per calcolare valori di campo, è necessario utilizzare un SQL standardizzato. Questa sezione fornisce un elenco degli operatori e delle funzioni SQL che è possibile utilizzare per i calcoli SQL in ArcGIS Enterprise.

Dopo aver creato l'espressione SQL, fare clic sul pulsante Calcola. Se si verificano errori, viene visualizzato un messaggio di errore nella parte inferiore della finestra di dialogo. Correggere la sintassi dell'espressione ed eseguire nuovamente il calcolo.

Operatori

Nella finestra di dialogo Calcola campo è possibile creare semplici espressioni SQL utilizzando operatori come somma, sottrazione, moltiplicazione e divisione. Esempi e suggerimenti per utilizzare questi operatori come segue:

  • Per moltiplicare per 100,0 i valori numerici in un campo numerico denominato SAMPLE, digitare SAMPLE * 100.0 per l’espressione.
  • Per equazioni più complesse, è possibile utilizzare le parentesi per specificare l'ordine dei calcoli, ad esempio SAMPLE * (BASELINE - 40).
  • Gli operatori matematici non funzionano con i campi stringa. Sarà necessario utilizzare le funzioni stringa descritte nella sezione Funzioni stringa.
  • Se si intende calcolare un campo di tipo doppio in un campo di tipo intero, è possibile che all'espressione venga aggiunta automaticamente la funzione CAST. Ad esempio, se si intende calcolare un campo double denominato POP in un campo di valore intero denominato SAMPLE, l'espressione visualizzata sarà CAST(SAMPLE AS FLOAT). Non rimuovere la funzione CAST. Vedere la sezione Funzioni numeriche di seguito per informazioni sulla funzione CAST.
  • Per includere un apostrofo nella stringa, utilizzare due virgolette singole come apostrofo. Ad esempio, 'Nightingale''s'. Non utilizzare una virgoletta doppia.

Funzioni

Oltre a semplici espressioni con operatori, è anche possibile utilizzare anche le funzioni per creare espressioni SQL. Le funzioni possono essere utilizzate con nomi di campo, valori letterali e altre funzioni. Si supponga ad esempio di dover calcolare un campo di tipo double da TOTALPOP diviso per POP18. Se un valore POP18 di una feature è uguale a zero, il calcolo restituirà un errore di divisione per zero. Per evitare tale errore, è possibile utilizzare la funzione NULLIF descritta di seguito. L'espressione sarà TOTALPOP / NULLIF(POP18, 0).

Le funzioni accettano argomenti. Nelle tabelle seguenti qualsiasi argomento può essere uno dei seguenti:

  • Un nome di campo, purché il tipo di campo corrisponda al tipo di argomento (stringa, numero o data).
  • Un valore letterale, ad esempio 'Barca a vela' (una stringa racchiusa tra virgolette singole), il numero 5 o una data in formato MM/GG/AAAA hh:mm:ss racchiusa tra virgolette singole.
  • Una funzione che restituisce un valore di tipo corretto (stringa, numero o data). Ad esempio, FLOOR(POWER(SAMP_ERR, 0.5)) restituisce il valore intero massimo minore o uguale alla radice quadrata di SAMP_ERR.

A scopo illustrativo, negli esempi della colonna Descrizione delle seguenti tabelle vengono utilizzati principalmente argomenti di tipo valore letterale. È possibile sostituire il nome di un campo o un'altra funzione per questi argomenti.

Funzioni data

Sui campi data è possibile eseguire diversi calcoli. Ad esempio, è possibile aggiungere o sottrarre tempo da una campo data o calcolare la differenza tra due campi data.

Prima di lavorare con i campi data, si consiglia di leggere queste importanti considerazioni.

Durante il calcolo dei campi data è possibile utilizzare qualsiasi combinazione di campi data e numerici e valori letterali. Quando si utilizzano valori letterali data, occorre utilizzare formati data supportati da SQL.

Sono disponibili le seguenti funzioni data:

FunzioneDescrizione

CURRENT_DATE

Restituisce la data corrente nel fuso UTC.

Ciò che viene visualizzato nel client dipende dal client che si sta utilizzando. Nel portale Web, le date vengono visualizzate nel fuso orario del browser.

I seguenti esempi restituiscono tutti i valori nel campo inspection_date con una data successiva a quella odierna:

inspection_date > CURRENT_DATE

CURRENT_TIMESTAMP

Restituisce data e ora UTC correnti (ore, minuti, secondi).

Ciò che viene visualizzato nel client dipende dal client che si sta utilizzando. Nel portale Web, l'orario viene visualizzato nell'ora locale del browser.

In questo esempio, tutti i valori di data/ora precedenti alla data odierna e all'ora corrente (in UTC) vengono restituiti per il campo appointments:

appointments < CURRENT_TIMESTAMP

EXTRACT(<unit> FROM '<date>')

Restituisce una singola parte (<unit>) del <date> specificato. I valori <unit> possibili includono, ad esempio, l'anno, il mese, il giorno, l'ora e il minuto.

Gli esempi includono:

  • EXTRACT(MONTH FROM '12-21-2016'): restituisce 12.
  • EXTRACT(DAY FROM '12-21-2016 12:00'): restituisce 21.
  • EXTRACT(HOUR FROM '12-21-2016 15:00:44'): restituisce 15.

Funzioni numeriche

FunzioneDescrizione

ABS(<number>)

Restituisce il valore assoluto (positivo) del numero specificato.

CEILING(<number>)

Restituisce il numero intero più piccolo maggiore o uguale al numero specificato.

Esempio

  • CEILING(12.93): il risultato è 13.

COS(<number>)

Restituisce il coseno trigonometrico di <number>, che si presume sia un angolo in radianti.

CAST(<number> AS FLOAT | INT)

Converte un numero in un tipo diverso. FLOAT converte il numero specificato in valore double e INT lo converte in un numero intero.

FLOOR(<number>)

Restituisce il valore intero massimo minore o uguale al numero specificato.

Esempio

  • FLOOR(12.93): il risultato è 12.

LN(<number>,<decimal_place>)

Il logaritmo naturale del numero specificato.

LOG(<number>,<decimal_place>)

Il logaritmo in base 10 del numero specificato.

MOD(<number>, <n>)

Restituisce il resto dopo il dividendo (<numero>) è suddiviso dal divisore <n>. Sia <n> che <numero> devono essere valori di tipo intero.

Gli esempi includono:

  • MOD(10, 4): il risultato è 2.
  • MOD(CAST(DBLFIELD AS INT), 4)DBLFIELD è un campo di tipo double, per cui è necessaria la funzione CAST per convertire i valori da double a numero intero.

NULLIF(<number>, <value>)

Restituisce null se il numero specificato è uguale al valore specificato. NULLIF generalmente viene utilizzato per impedire errori di divisione per zero impostando <value> a 0.

Ogni volta che un calcolo rileva un valore del campo null in uno degli argomenti, il risultato del calcolo è null.

Si supponga ad esempio di dover calcolare un campo di tipo double da TOTALPOP diviso per POP18. Se una feature ha un valore POP18 uguale a zero, il calcolo restituirà un errore di divisione per zero. È possibile creare un filtro per nascondere i record in cui POP18 è zero ed eseguire il calcolo. Un metodo rapido consiste nell'utilizzo di NULLIF.

  • TOTALPOP / NULLIF(POP18, 0): restituisce null se POP18 è uguale a zero, altrimenti viene restituito il valore di TOTALPOP / POP18.

POWER(<number> , <y>)

Restituisce il valore del numero specificato elevato alla potenza specificata (<y>).

ROUND(<number> , <length>)

Arrotonda il numero specificato alla lunghezza specificata.

Se si utilizza un numero positivo per <length>, il numero viene arrotondato alla posizione decimale specificata da <length>. Quando <length> è un numero negativo, il <number> specificato viene arrotondato sul lato sinistro della virgola decimale.

Esempi

  • ROUND(10.9934,2): restituisce 10,99.
  • ROUND(10.9964,2): restituisce 11,00.
  • ROUND(111.0,-2): restituisce 100,00.

SIN(<number>)

Restituisce il seno trigonometrico del <number> specificato, che si presume sia un angolo in radianti.

TAN(<number>)

Restituisce la tangente del <number> specificato, che si presume sia un angolo in radianti.

TRUNC(<number>,<decimal_place>)

Tronca il <number> al <decimal_place> specificato.

Un <decimal_place> positivo viene troncato alla posizione decimale specificata. Quando <decimal_place> è un numero negativo, il <number> viene troncato sul lato destro della virgola decimale.

Esempi

  • TRUNC(111.996,2): restituisce 111,99
  • TRUNC(111.996,-2): restituisce 100,00.

Funzioni stringa

FunzioneDescrizione

CHAR_LENGTH(<string>)

Restituisce il numero di caratteri nella stringa specificata. Il risultato è un valore intero.

Esempio

  • CHAR_LENGTH('Redlands'): il risultato è 8.

CONCAT(<string1>, <string2>)

Concatena due valori stringa.

È possibile specificare solo due stringhe. Per concatenare più di due stringhe, nidificare funzioni CONCAT consecutive come mostrato di seguito.

Esempi

  • CONCAT('A', 'B'): il risultato è 'AB'.
  • CONCAT('A', CONCAT(':', 'B')): il risultato è 'A:B'.

I valori Null vengono convertiti in una stringa vuota.

POSITION(<substring> in <string>)

Restituisce la posizione della prima occorrenza della sottostringa specifica nella stringa specificata. Se la sottostringa specifica non viene trovata, il risultato è 0.

Esempi

  • POSITION('boat'in 'Sailboat'): il risultato è 5.
  • POSITION('motor'in 'Sailboat'): il risultato è 0.

SUBSTRING(<string>, <start>, <length>)

Restituisce una parte di un valore stringa; <start> è un indice intero che specifica l'inizio dei caratteri restituiti e <length> è il numero di caratteri da restituire.

Esempi

  • SUBSTRING('Sailboat', 5, 4): il risultato è 'boat'.
  • SUBSTRING('Sailboat', 1, 4): il risultato è 'Sail'.
  • SUBSTRING('Sailboat', 5, 100): il risultato è 'boat'.

TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>)

Restituisce una stringa in cui tutti gli spazi iniziali e finali vengono rimossi dalla stringa specificata.

Esempio

  • TRIM(BOTH ' ' FROM ' San Bernardino '): il risultato è 'San Bernardino'.

Si noti che il secondo argomento è costituito da due virgolette singole che racchiudono uno spazio.

UPPER(<string>)

Restituisce una stringa in cui tutti i caratteri vengono convertiti in maiuscolo.

Esempio

  • UPPER('Sailboat'): il risultato è 'SAILBOAT'.

LOWER(<string>)

Restituisce una stringa in cui tutti i caratteri vengono convertiti in minuscolo.

Esempio

  • LOWER('Sailboat'): il risultato è 'sailboat'.