2017-01-20 19 views
0

SQL Serverの結果セットからデータをコピーし、Excelスプレッドシートに貼り付けます。 NULL値はExcelでは空白として表示する必要がありますが、デフォルトの動作では「NULL」という単語が表示されます。テキストフィールドの場合、元のクエリにISNULL([field]、 '')を適用できます。しかし、数値フィールドはどうですか?私はそれを0にしたくない、それは空白にする必要があります。クエリベースのソリューションはありますか?私は見つけると交換することを忘れています。SQL ServerからExcelにデータをコピーする場合は、空白の代わりに「NULL」を入力してください。

+0

私は知っていることはありません...あなたのクエリを 'numberCol = isnull(convert(varchar(32)、numberCol)、 '')'のようなものでvarcharに変換することができます。 – SqlZim

+1

デフォルトの「動作」はExcelにありません。 SSMSが出力にNULLを表示する方法です。 Excelで数値列に対して同じISNULLロジックを使用できることを確認してください。データはExcelで厳密に型指定されていないため(実際は単なる文字列です)、空の文字列を表示できます。計算のために、Excelは空の文字列を0として扱います。 –

+0

SqlZim、私はあなたの超愚かな関数ネストを使用してしまいました。まもなく、私はこの全体のプロセスを変更するつもりです。あなたの助けてくれてありがとう。 – Rhys

答えて

0

これはコメントの方が多いですが、担当者には低いですが、回答として投稿します。ワークシートに貼り付けられたときにExcelはデフォルトで空白を数値に表示しません。それは、空のデータポイントを(正しく)0と解釈します。0を見つけて空値で置き換えることは、プレゼンテーションの目的のためです。そのような場合は、条件付き書式設定をお勧めします。セルの値= 0に設定すると、テキストが白くなります。この列に数学を適用している場合、nullセルまたは0セルの効果は同じであり、式/関数には影響しません。

+0

この制限が追加されている必要があります。Excelファイルには、数式または条件式を使用できません。これは、.xlsという接尾辞を持つタブ区切りのテキストファイルとして設計されています。ファイル形式は私のコントロール下にありません。 SQLからの出力はできるだけ配信形式に近いものにする必要があります。また、データに正当な0があるため、空白で置き換えることはできません。 – Rhys

+0

ケースバイケースで見つけて交換しますか?ファイルを標準の.xlsファイルまたは.xlsxファイルとして保存する方法はありませんか?最後に、データソースを他のユーザーと共有する必要がありますか?データソースをローカルに保管することはできず、このデータのビュー(ピボットテーブル、リンクテーブルなど)のみを共有できますか? –

+0

ハハハ!ベストプラクティス???いいえ、私はこのプロジェクトの所有権を取得したばかりですが、現在はそのまま維持する必要があります。したがって、タブで区切られた.xlsでは、NULLではなく空白が使用されます。 – Rhys

関連する問題