VIDTAKER.COM

Q&A

整数はゼロ、"0'は、SQL Serverにアップロードは無視されます。


私はユーザーがファイルを挿入してデータをExcelアップロードできるようにページを持つことがSQL Serverへのファイル優れています。今私は、そこに列が小さな問題がある値を持つファイルを、"001"、"029"、"236"のような優れています。データがなるようにするときは、SQL Server、ゼロを挿入する前でのSQLで、無視されます"1"、"29"、"239"。 SQLで列のデータ型はvarchar(10)です。どのようにこの問題を解決するには?



6 Replies

1)

何かが文字列から整数にセルをExcelでデータを変換する必要があります。どのように挿入して実行している?


2)

たぶん、Excelのセルに役立つ"テキスト"のデータ型を設定する。


3)

Excelが自動的に数値にセルの値を変換するようだ。 Excelシートの単一引用符で処理前にセルの内容を付加してください。例えば'001 。あなたは、文字列をゼロで左パッドにルーチン数値の書式設定を使用しないユーザーを信頼できない場合。


4)

ユーザーがExcelに001を入力する場合は、番号を1に変換されます。

ユーザーがExcelに001を入力した場合、それは文字列としてセルに保存されます。

セルの場合は事前に数値の書式"と@"フォーマットし、ユーザーが入力はテキスト"として入力されるセル001に001"。 "@"番号の形式は、そのセルのテキストのセルと任意のentryです(かどうかは数値、日付、時間、分、等...のように見える)です、単にセルに配置する必要がExcelの指示 - テキストとしてセル。

あなたは事前にフォーマットすると、この列をユーザーに伝える"@"?これは一般的に最も信頼できる方法ユーザーは001を入力してくださいする必要がないので、これを処理することです。


5)

Excelは、おそらく原因はここです。 CSVファイルにファイルを変換してください、どのように出てくる参照してください。先行するゼロは、新しいCSVファイルになっている場合は、Excelが問題です。


6)

Excelで、常にこの、そのnuissanceはありません。私が知っている3つの回避策があります:

  1. 前には、Excel形式のテキストとしては、列全体を必要に応じて行うことができますセル(任意のセルにデータを入力します。)のみ動作を、スプレッドシート、ユーザー、基本的にはないです:-)制御します。

  2. あなたは、数字および/またはExcelデータ内のテキスト、およびExcelのインポートする前にそれを修正:スプレッドシートに列を追加のミックスを買ってあげるとTEXT()を使用と仮定してテキストにのように、= TEXTを数値を変換する関数(A2は、"000");をダウン入力します。また、ワークシートを編集することができますと仮定します。

  3. を挿入する時に、コード内の数字を修正する必要があると仮定します。どのようにデータを読み込んでいるのは、そのT - SQLのか、他のコードで発生する可能性に応じ。のTSQLでは、この式はパッドに3文字の幅にゼロで動作:右('000'+キャスト(2(3))、3 varchar型)