sql >> Database teknologi >  >> RDS >> Sqlserver

SQL erstatter alle NULL'er

Som mange her har sagt, er den bedste tilgang ISNULL(), men hvis du vil have en nem måde at generere alle disse ISNULL()'er, skal du bruge følgende kode:

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'

Dette vil gøre det kedelige arbejde meget nemmere, så skal du bare redigere outputtet for at tage højde for de forskellige felttyper (int, varchar, datoer osv.)

Rediger:tager højde for forskellige datatyper med standardværdier..



  1. NLS_INITCAP() Funktion i Oracle

  2. Hvordan får man poster tilfældigt fra Oracle-databasen?

  3. Hvad skal jeg bruge for at køre SQL?

  4. Hvordan OPDATERE og VÆLG på samme tid