Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL замества всички NULL

Както мнозина тук казаха, най-добрият подход е ISNULL(), но ако искате лесен начин да генерирате всички тези ISNULL() използвайте следния код:

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'

Това ще направи досадната работа много по-лесна, след това просто трябва да редактирате изхода, за да отчетете различните типове полета (int, varchar, дати и т.н.)

Редактиране:отчитане на различни типове данни със стойности по подразбиране...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Името на колоната или броят на предоставените стойности не съответстват на дефиницията на таблицата

  2. Как да вмъкна запис само със стойности по подразбиране?

  3. OLTP в паметта:Какво е новото в SQL Server 2016

  4. Преглед на компресията на данни в SQL Server

  5. Как мога да избера първия ден от месеца в SQL?