2017-02-01 6 views
0

Я пытаюсь взять список из текстового файла и экспортировать его в excel.SSIS с Visual Studio Derived Column

Rank,Millions,Name,Country,Source of wealth 
1,12700,Lakshmi Mittal and family, India,Steel 
2,12315,Alisher Usmanov, Russia,Mining and Investment 
3,9500,Roman Abramovich, Russia,Oil and industry 
4,8600,Sri and Gopi Hinduja, India,Industry and Finance 
5,7580,Leonard Blavatnik, Russia,Industry 
6,7400,Ernesto and Kirsty Bertarelli, Switzerland &  United Kingdom,Pharmaceuticals 
7,7350,Gerald Grosvenor, 6th Duke of Westminster, United Kingdom,Property 
8,7083,David and Simon Reuben, United Kingdom,Property and Internet 
9,6600,John Fredriksen and family, Norway,Shipping and oil services 
10,5900,Galen Weston, George Weston and family, Canada,Retailing 
11,5490,Charlene de Carvalho-Heineken and Michel Carvalho, Netherlands,Inheritance, banking, brewing (Heineken) 
12,4300,Hans Rausing and family, Sweden,Packaging 
13,4100,Joseph Lau, China,Property 
14,,Paul Chuckle, UK, IT Training 
15,4300,Nicky Oppenheimer, South Africa,Mining, Diamonds 
16,3900,Kirsten & Jorn Rausing, Sweden,Inheritance, Investment 
17,3400,Sir Richard Branson, United Kingdom,Internet, Transport, Finance 
18,3300,Sir Philip and Lady Green, United Kingdom,Retailing 
19,,Barry Chuckle, UK, Comedy 
20,,Roger Chuckle,UK,SSIS consultancy 

Для рангов 14, 19 и 20 столбец Миллионы представляет собой пустую строку. Я уже разделял данные из строк с указанными Миллионами и теми, у кого нет условного разделения. Теперь я хочу сделать три строки, которые не указаны, и записать в «Не указано» с помощью преобразования Derived Column. Я полагаю, что я мог бы сделать что-то подобное (на вкладке выражение):

Millions=="Not Specified" 

Однако, когда я бегу просмотра данных на выходе, три колонки показывают «False» в столбце Millions.

Я сделал странную работу вокруг, но я уверен, что есть лучший способ:

Millions == "" || Millions != "" ? "Not Specified" : "Not Specified" 

Может кто-нибудь сказать мне, почему я не могу использовать мое первое решение? Я предполагаю, что это имеет какое-то отношение к булевому, но тип данных - это строка.

ответ

0

Прежде всего, есть ли какая-то особая причина, почему вы отделяете записи с пустым значением для поля «Миллионы» с условным расколом? Вы можете просто использовать преобразование Derived Column, а на вкладке Derived Column выберите: Replace «Millions». В выражения баре можно ввести:

`Millions=="" ? "Not specified" : Millions` 

Это означает, что если поле Миллионы имеет пустое значение, замените это «Не указано» (истинное состояние) или, наоборот, просто вставить существующее значение ЛОЖЬ (состояние). Вы правы, тип данных - строка, но оценка выражения всегда указывает на логическое значение. Позвольте мне вкратце объяснить, почему вы не можете использовать только миллионы == «Не указано». Выражение ожидает некоторых аргументов для оценки, поэтому вы должны указать, что произойдет, если выражение оценивается как true или false. Вы можете думать об этом операторе как о упрощенной версии инструкции if/else. Итак, проблема с вашим первым решением заключается в том, что вы не указали, что произойдет, если Millions == "". Надеюсь, что это поможет.

+0

Спасибо, я новичок в этом, но это имеет большой смысл. – alexs973

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