Sommario: in questo tutorial, vi mostreremo come usare l’operatore PostgreSQL CAST
per convertire un valore di un tipo in un altro.
Introduzione all’operatore PostgreSQL CAST
Ci sono molti casi in cui volete convertire un valore di un tipo di dati in un altro. PostgreSQL vi fornisce l’operatore CAST
che vi permette di farlo.
Il seguente illustra la sintassi del tipo CAST
:
Code language: SQL (Structured Query Language) (sql)
In questa sintassi:
- Prima, specificate un’espressione che può essere una costante, una colonna di tabella, un’espressione che valuta un valore.
- Poi, specificate il tipo di dati di destinazione in cui volete convertire il risultato dell’espressione.
PostgreSQL type cast :: operator
Oltre alla sintassi del tipo CAST
, puoi usare la seguente sintassi per convertire un valore di un tipo in un altro:
Code language: SQL (Structured Query Language) (sql)
Vedi il seguente esempio:
Code language: SQL (Structured Query Language) (sql)
Si noti che la sintassi cast con l’operatore cast (::) è specifica di PostgreSQL e non è conforme allo standard SQL
Esempi CAST di PostgreSQL
Facciamo alcuni esempi di utilizzo dell’operatore CAST
per convertire un valore di un tipo in un altro.
1) Esempio di Cast di una stringa in un intero
La seguente istruzione converte una costante stringa in un intero:
Code language: SQL (Structured Query Language) (sql)
Se l’espressione non può essere convertita nel tipo di destinazione, PostgreSQL solleverà un errore. Vedi il seguente esempio:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Cast di una stringa in una data esempio
Questo esempio usa il CAST
per convertire una stringa in una data:
Code language: SQL (Structured Query Language) (sql)
Prima, abbiamo convertito 2015-01-01
stringa letterale in January 1st 2015
. In secondo luogo, abbiamo convertito 01-OCT-2015
in October 1st 2015
.
3) Cast di una stringa in un doppio esempio
Nel seguente esempio, proviamo a convertire una stringa '10.2'
in un valore doppio:
Code language: SQL (Structured Query Language) (sql)
Ops, abbiamo il seguente messaggio di errore:
Code language: PHP (php)
Per risolvere questo problema, devi usare DOUBLE PRECISION
invece di DOUBLE
come segue:
Code language: SQL (Structured Query Language) (sql)
4) Cast di una stringa in un booleano esempio
Questo esempio usa il CAST()
per convertire la stringa ‘true’, ‘T’ in true e ‘false’, ‘F’ in false:
Code language: SQL (Structured Query Language) (sql)
Ecco il risultato:
5) Convertire una stringa in un timestamp esempio
Questo esempio usa l’operatore cast (::) per convertire una stringa in un timestamp:
Code language: SQL (Structured Query Language) (sql)
6) Convertire una stringa in un intervallo esempio
Questo esempio usa l’operatore cast per convertire una stringa in un intervallo:
Code language: SQL (Structured Query Language) (sql)
Ecco l’output:
7) Usare CAST con i dati della tabella esempio
Primo, crea una tabella ratings
che consiste di due colonne: id e rating. Il tipo di dati della colonna rating
è VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
Secondo, inserire alcuni dati di esempio nella tabella ratings
.
Code language: SQL (Structured Query Language) (sql)
Perché i requisiti cambiano, usiamo la stessa tabella ratings
per memorizzare le valutazioni come numero ad es, 1, 2, 3 invece di A, B, e C:
Code language: SQL (Structured Query Language) (sql)
Quindi la tabella ratings
memorizza valori misti tra numerico e stringa.
Code language: SQL (Structured Query Language) (sql)
Ora, dobbiamo convertire tutti i valori nella colonna rating
in numeri interi, tutte le altre valutazioni A, B, C saranno visualizzate come zero. Per fare questo, si usa l’espressione CASE
con il tipo CAST
come mostrato nella seguente query:
Code language: SQL (Structured Query Language) (sql)
La CASE
controlla la valutazione, se corrisponde al modello intero, converte la valutazione in un intero, altrimenti, restituisce 0.
In questo tutorial, hai imparato come usare PostgreSQL CAST
per convertire un valore di un tipo in un altro.
- Questo tutorial è stato utile?
- SìNo