sql >> Base de Datos >  >> RDS >> Sqlserver

SQL reemplaza todos los NULL

Como muchos han dicho aquí, el mejor enfoque es ISNULL(), sin embargo, si desea una manera fácil de generar todos esos ISNULL(), use el siguiente código:

SELECT 'ISNULL([' + COLUMN_NAME + '], ' + 
  CASE 
    WHEN DATA_TYPE = 'bit' THEN '0'
    WHEN DATA_TYPE = 'int' THEN '0'
    WHEN DATA_TYPE = 'decimal' THEN '0'
    WHEN DATA_TYPE = 'date' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'datetime' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'uniqueidentifier' THEN '00000000-0000-0000-0000-000000000000'
    ELSE '''''' -- everything else get's an empty string
  END + ') AS [' + COLUMN_NAME + '],'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TableName'

Esto hará que el trabajo tedioso sea mucho más fácil, luego solo tiene que editar la salida para tener en cuenta los distintos tipos de campo (int, varchar, fechas, etc.)

Editar:contabilidad de varios tipos de datos con valores predeterminados..