Estoy importando datos de una tabla que tiene feeds sin procesar en Varchar, necesito importar una columna en varchar a una columna de cadena. Intenté usar el <column_name>::integer
así como to_number(<column_name>,'9999999')
pero recibo errores, ya que hay algunos campos vacíos, necesito recuperarlos como vacíos o nulos en la nueva tabla.
Por favor avíseme si hay una función para el mismo.
postgresql
casting
Vijay DJ
fuente
fuente
Respuestas:
Conjetura salvaje: si su valor es una cadena vacía, puede usar NULLIF para reemplazarlo por un NULL:
fuente
Incluso puede ir más allá y restringir este campo combinado como, por ejemplo: -
fuente
Si necesita tratar las columnas vacías como
NULL
s, intente esto:Por otro lado, si tiene
NULL
valores que necesita evitar, intente:Estoy de acuerdo, el mensaje de error ayudaría mucho.
fuente
La única forma en que consigo no tener un error debido a NULL, o caracteres especiales o una cadena vacía es haciendo esto:
fuente
WHERE <column> != NULL
?No puedo comentar (¿muy poca reputación? Soy bastante nuevo) sobre la publicación de Lukas.
En mi configuración de PG
to_number(NULL)
no funciona, entonces mi solución sería:fuente
NULLIF()
enfoque menos detallado . El estándar realmente define NULLIF como una forma del predicado CASE.Si el valor contiene caracteres no numéricos, puede convertir el valor en un número entero de la siguiente manera:
El operador CASE verifica la <columna>, si coincide con el patrón de números enteros, convierte la tasa en un número entero; de lo contrario, devuelve 0
fuente
puedes usar esta consulta
fuente
Problema común
Tipo ingenuamente lanzando cualquier cadena en un entero como ese
A menudo resulta en el famoso error:
Problema
PostgreSQL no tiene una función predefinida para convertir de forma segura cualquier cadena en un número entero.
Solución
Cree una función definida por el usuario inspirada en la función intval () de PHP .
Uso
fuente
Mis dos centavos por convertir cualquier cadena a un número entero:
Basado en https://www.postgresqltutorial.com/regexp_replace/ .
fuente