2013-09-03 2 views
2

У меня есть CSV-файл с столбцом active, который содержит значения «Да» и «Нет».SSIS Derived Column nvarchar к биту

Я использовал производный компонент в пакете SSIS, но я изо всех сил пытаюсь заставить свое выражение работать. Поле на сервере Sql имеет тип данных бит.

Active == "YES" ? "0" : "1" 

Любые идеи, в которых я могу ошибиться?

+0

Взгляните на это [статья] (http://social.msdn.microsoft.com/Forums/sqlserver/en-US/6aca0406-e0d6-4cb4-bcb6-d62897e61fa6/converting-dtstr-to-dtbool), вы также можете попробовать выполнить свой результат (DT_BOOL) – TsSkTo

ответ

0

Я не мог заставить его работать так. Но это работает.

REPLACE(REPLACE([Column 1],"yes","1"),"no","0") 
+1

Это сработало для меня, спасибо. – lemondash

2

Вы почти у цели. Это будет работать:

(DT_BOOL)(UPPER(Active) == "YES" ? 1 : 0) 

Таким образом, вы просто использовать 1 и 0, а не «1» и «0» (как вы хотите цифры, а не строки), а затем бросить все это к DT_BOOL, который будет отображать отлично подходит для типа SQL Server bit.

Я также добавил ВЕРХНИЙ, так как вы, кажется, не знаете, является ли ваше значение «Да» или «ДА», и сравнение строк в противном случае будет чувствительным к регистру.

(Кроме того, обратите внимание, что я никогда предположил, что вы хотите, да к карте 1 и Нет, чтобы отобразить 0, что было бы обычным способом вокруг ...)

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