Resumo: neste tutorial, vamos mostrar como usar o PostgreSQL CAST
operador para converter um valor de um tipo para outro.
Introdução ao operador PostgreSQL CAST
Existem muitos casos em que você quer converter um valor de um tipo de dado para outro. PostgreSQL fornece o operador CAST
que permite fazer isso.
O seguinte ilustra a sintaxe do tipo CAST
:
Code language: SQL (Structured Query Language) (sql)
Nesta sintaxe:
- Primeiro, especifique uma expressão que pode ser uma constante, uma coluna de tabela, uma expressão que avalia para um valor.
- Então, especifique o tipo de dado alvo para o qual você quer converter o resultado da expressão.
>
Lingotamento do tipo PósgreSQL :: operator
Beside o tipo CAST
sintaxe, você pode usar a seguinte sintaxe para converter um valor de um tipo em outro:
Code language: SQL (Structured Query Language) (sql)
Veja o seguinte exemplo:
Code language: SQL (Structured Query Language) (sql)
Note que a sintaxe do operador de elenco (::) é específica do PostgreSQL e não está de acordo com o padrão SQL
Exemplos de CAST do PostgreSQL
Vejamos alguns exemplos de uso do operador CAST
para converter um valor de um tipo para outro.
1) Lança uma string para um exemplo inteiro
A seguinte instrução converte uma constante de string para um inteiro:
Code language: SQL (Structured Query Language) (sql)
Se a expressão não puder ser convertida para o tipo alvo, o PostgreSQL irá levantar um erro. Veja o seguinte exemplo:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Lance uma string para um exemplo de data:
Este exemplo usa o CAST
para converter uma string para uma data:
Code language: SQL (Structured Query Language) (sql)
Primeiro, convertemos 2015-01-01
string literal em January 1st 2015
. Segundo, convertemos 01-OCT-2015
para October 1st 2015
.
3) Lança uma string para um exemplo duplo
No exemplo seguinte, tentamos converter uma string '10.2'
num valor duplo:
Code language: SQL (Structured Query Language) (sql)
Quem, recebemos a seguinte mensagem de erro:
Code language: PHP (php)
Para corrigir isto, você precisa usar DOUBLE PRECISION
em vez de DOUBLE
como se segue:
Code language: SQL (Structured Query Language) (sql)
4) Lança uma string para um exemplo booleano
Este exemplo usa o CAST()
para converter a string ‘true’, ‘T’ para true e ‘false’, ‘F’ para false:
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
5) Converter uma string para um exemplo de timestamp
Este exemplo usa o operador cast (::) para converter uma string para um timestamp:
Code language: SQL (Structured Query Language) (sql)
6) Converter uma string para um exemplo de intervalo
Este exemplo usa o operador cast para converter uma string para um intervalo:
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
7) Usando CAST com exemplo de dados de tabela
Primeiro, crie uma tabela ratings
que consiste em duas colunas: id e classificação. O tipo de dados da coluna rating
é VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
Segundo, insira alguns dados de amostra na tabela ratings
> tabela.
Code language: SQL (Structured Query Language) (sql)
Porque os requisitos mudam, nós usamos a mesma tabela ratings
para armazenar classificações como número, por exemplo, 1, 2, 3 em vez de A, B e C:
Code language: SQL (Structured Query Language) (sql)
Então a tabela ratings
armazena valores mistos incluindo numéricos e string.
Code language: SQL (Structured Query Language) (sql)
Agora, temos de converter todos os valores da coluna rating
em números inteiros, todas as outras classificações A, B, C serão exibidas como zero. Para fazer isso, você usa a expressão CASE
com o tipo CAST
como mostrado na seguinte consulta:
Code language: SQL (Structured Query Language) (sql)
A CASE
verifica a classificação, se ela corresponder ao padrão inteiro, ela converte a classificação em um número inteiro, caso contrário, retorna 0.
Neste tutorial, você aprendeu como usar o PostgreSQL CAST
para converter um valor de um tipo para outro.
- Este tutorial foi útil ?
- Sim Não