2014-09-14 3 views
0

Когда я экспортирую записи, используя запрос мастера импорта импорта SQL Server 2005, в файл с разделителями-запятыми, столбец с целым типом данных с значением NULL экспортируется как ,,, т.е. null заменяется никаким символом, в то время как я хочу, чтобы результат был ,NULL,.Экспорт нулевых целочисленных данных из SQL Server 2005 в файл

Как это сделать?

ответ

0

Null означает, что нет значения, но вы хотите, чтобы значение строки «NULL» было экспортировано. Может быть, вы должны использовать саз в запросе заменить строку для нулей:

case 
    when yourColumn is null then 'NULL' 
    else cast(yourColumn as varchar(100)) 
end as IntegerColumn 
+0

Другие варианты: использовать ISNULL () 'function или' COALESCE() '. –

+0

, если выбрать cola, colb, colc from table_1 order by cold - мой запрос, как использовать функцию isNull для выполнения этой цели? –

+0

Не уверен, что ISNULL или COALESCE будут работать так, как вам нужно, чтобы получить согласованный тип данных, который в этом случае должен быть varchar/nvarchar. – DvS

3

Используйте инструмент bcp. Он может экспортировать результаты запроса. Используйте собственный формат и используйте тот же инструмент bcp для импорта данных в пункт назначения.

Среди других преимуществ (скорость, минимальная регистрация, правильная кодовая страница и обработка Юникода, доработка и т. Д. И т. Д.), Вы также получите правильную обработку NULL в процессе. bcp позволяет осуществлять тонкий контроль над NULL, см. Keep Nulls or Use Default Values During Bulk Import (SQL Server).

Если вы настаиваете на CSV файлов, то есть не является фундаментальным никакого способа представления NULLs см BCP and NULL Values:

только не неоднозначный способ представления NULL в символ режима BCP заключается в использовании двух смежных разделителей в файл с разделителями символов. Манипуляция исходным файлом для достижения этого состояния возможна с помощью нескольких методов. В качестве альтернативы, если 0 или пробелы в столбце SQL назначения не имеют действительного значения для конкретной базы данных, вы можете изменить его на NULL с помощью объемного оператора UPDATE, следующего за BCP.

Смежные вопросы