sql >> Databáze >  >> RDS >> Sqlserver

SQL nahradí všechny hodnoty NULL

Jak již mnozí zde řekli, nejlepším přístupem je ISNULL(), pokud však chcete snadný způsob, jak vygenerovat všechna tato ISNULL(), použijte následující kód:

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'

Díky tomu bude zdlouhavá práce mnohem snazší, pak stačí upravit výstup, aby zohlednil různé typy polí (int, varchar, data atd.)

Edit:zohlednění různých datových typů s výchozími hodnotami..



  1. Průvodce po MariaDB Columnstore pro správce MySQL

  2. Jak změním výchozí hodnotu sloupce v PostgreSQL?

  3. Video:Oracle 12c IDENTITY Column Performance na RAC

  4. Oracle SQL GROUP BY není nápověda k výrazu GROUP BY