2017-02-01 13 views
0

私はテキストファイルからリストを取り出し、Excelにエクスポートしようとしています。SSIS with 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の場合、ミリオン列は空の文字列です。私は既に、ミリオンが指定された行と、条件付き分割を使用していない行からデータを分離しました。私が今したいのは、指定されていない3行を取り出し、派生列変換を使用して「指定なし」に書き込むことです。私は私が(表現タブで)のような何かを行うことができるだろうと理解:私は出力にデータビューアを実行すると

Millions=="Not Specified" 

はしかし、3つの列が何百万の欄の「偽」を示しています。

私の周り奇妙な仕事をしましたが、私は良い方法があります確信している:

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

私は私の最初のソリューションを使用することはできませんなぜ誰かが私に言うことはできますか?私はブール値と何か関係があると仮定していますが、データ型は文字列です。

答えて

0

まず、何百万というフィールドを条件付き分割で空の値で区切っているのかという特別な理由はありますか?派生列変換を使用することができ、派生列タブの下で「置換」を選択します。表現のバーでは次のように入力します。

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

これは、何百万のフィールドが空の値を持っている場合、反対に、単に既存の値(偽条件)を挿入し、(真の条件)「指定なし」かでこれを置き換えることを意味します。あなたは正しいです、データ型は文字列ですが、式の評価は常にブール値を指します。何百万を使うことができない理由を簡単に説明しましょう== "指定なし"。 Expressionでは評価する引数がいくつかあると想定しているため、式がtrueまたはfalseと評価された場合の処理​​を指定する必要があります。この演算子はif/else文の簡略版と考えることができます。だから、あなたの最初の解決策の問題は、ミリオン== ""なら何が起こるかを指定しなかったことです。これが役立つことを願っています。

+0

ありがとうございます、私はこれで初めてですが、それは多くの意味があります。 – alexs973