sql >> Databasteknik >  >> RDS >> Sqlserver

SQL ersätter alla NULL

Som många här har sagt är det bästa tillvägagångssättet ISNULL(), men om du vill ha ett enkelt sätt att generera alla dessa ISNULL() använder du följande kod:

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'

Detta kommer att göra det tråkiga jobbet mycket enklare, sedan behöver du bara redigera utdata för att ta hänsyn till de olika fälttyperna (int, varchar, datum, etc)

Redigera:tar hänsyn till olika datatyper med standardvärden...



  1. Gör ett objekt DÖ i SQL Server

  2. Hur man ändrar servernivåsortering av körande SQL Server-instans

  3. Netherlands Access Developer Day 2019 – 14 september

  4. Standardradordning i SELECT-fråga - SQL Server 2008 vs SQL 2012