2016-10-31 6 views
0

Microsoft SQL Server 2008 R2を使用しています。varchar形式で格納されているエンジニアリング形式番号を検索

私は職場でサポートするはずのデータベースを持っていて、すべての実際の値はすべてvarcharのように保存されています。

私たちが使用するレポートソフトウェアのため、数値は10進数に変換する必要があります。私はそれらすべてを見つけることを期待して「%電子の%」のようなすべての値を検索してみました6.54E-6

: SQL Serverは、小数点

EXに科学表記に変換することができていないようです私は手動でそれらをすべて通常の数値形式に変換することができました...しかし、それはうまくいかなかったのです。

一括変換する方法はありますか?または、少なくともEを含むすべての値を検索しますか?

私はEを検索しようとしましたが、varcharとして保存されているため、値<を検索できません。

私はおそらくこれを数時間見ていないでしょう(私は12時間働いていないので、私はすぐにそれに答えることはできません)。先進的なおかげで、何時間もの検索時間を節約できます。

+0

? –

+0

@TTマス・コンバートのために使用するものはわかりません。問題は日付範囲を超えてクエリを実行し、特定のエントリとマシンを見つけるために日付範囲を徐々に狭めようとしたことでした。 – Neal

答えて

0

あなただけのfloat型に値をキャストすることができるはずです。

select (case when isnumeric(val) = 1 then cast(val as float) end) 
from t; 

皮肉なことに、ほとんどの状況でisnumeric()の弱点の一つは、それが科学的表記法を認識することです。ここには利点があります。 SQL Serverの2012+では

、あなたはtry_convert()使用することができます。

あなたは '質量変換' のためしてみてください何をしたかのクエリ
select try_convert(float, val) 
from t; 
+0

私の唯一の問題は、SQL Server 2008を使用していることです。クエリを試したところ、うまくいくように見えました。私たちのレポートが行っていたことは、クエリを終了した 'cast(Value as float)'に変更した場合、 'cast(小数点以下の値(18,2)としての値)'でした。私は実際の生産設備でこれを試すために今夜まで待たなければならないでしょう。 – Neal

関連する問題