sql >> Database >  >> RDS >> Sqlserver

SQL vervangt alle NULL's

Zoals velen hier hebben gezegd, is de beste aanpak ISNULL(), maar als je een gemakkelijke manier wilt om al die ISNULL()'s te genereren, gebruik dan de volgende code:

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'

Dit maakt het vervelende werk een stuk eenvoudiger, je hoeft dan alleen maar de uitvoer te bewerken om rekening te houden met de verschillende veldtypen (int, varchar, datums, enz.)

Bewerken:rekening houden met verschillende datatypes met standaardwaarden..



  1. Failover implementeren in MS SQL Server 2017 Standard

  2. Structured Query Language – Het belang van het leren van SQL

  3. Eenvoudige recursieve query in Oracle

  4. Hoe u uw bedrijf kunt moderniseren in 2022