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、datesなど)を考慮に入れる必要があります

    編集:デフォルト値でさまざまなデータ型を考慮します。



    1. MariaDBでのREGEXP_SUBSTR()のしくみ

    2. Oracleでユーザーを複製する方法

    3. T-SQL日時データ型

    4. Oracleで複数行の挿入を行う最良の方法は?