小数点をvarcharから切り離すにはどうすればよいですか? Ex。 '97 .4N IU/ML 'から'97 .4'を取得するにはどうしたらいいですか?SQL:varcharから小数点を抽出
-1
A
答えて
1
番号部分を仮定すると、いつもあなたが私の解決策は、文字列のみの小数部分を抽出する前に
が
を更新しまし行うことができます左側にあるであろう、それは何の変換もしませんでした。さらに、悪いデータが得られた場合は、その列に何が入っているのか保証することはできません。科学的な表現が得られる可能性も非常に高いので、数値を抽出する前にISNUMERIC()
テストを行うのが最善です。浮動小数点型の型を使用して文字列を変換するのはいいですが、これは科学的な式も扱うためですが、数値を浮動小数点として格納することは決して良いことではありません。2.70として表示される浮動小数点は、システムはそれをより多くの精度の場所に格納することに決めました。そのため、値の比較や数学を行う計画を立てる場合は、常に固定精度の形式で数値を格納する必要があります。
CREATE TABLE MyTable(MyColumn VARCHAR(25))
GO
INSERT INTO MyTable(MyColumn)
VALUES
('1.23E+10')
,('2.23E+8')
,('2.235432E-6')
,('4 of 40')
,('500mg/day')
,('97.4N IU/ML')
,('No Maximun')
,(NULL)
,('')
,('See Appendix R')
GO
SELECT
CONVERT(DECIMAL(20,8),
CASE
WHEN IsNumeric(MyColumn)=1 THEN
CONVERT(FLOAT,MyColumn)
ELSE CONVERT(FLOAT,'0'+LEFT(MyColumn,PATINDEX('%[^0-9.]%',MyColumn)-1))
END) AS MyDecimal
,MyColumn
FROM MyTable
旧回答
SELECT LEFT('97.4N IU/ML',PATINDEX('%[^0-9.]%', '97.4N IU/ML')-1)
ので、カラム上でそれを実行するには、この
SELECT LEFT(MyColumn,PATINDEX('%[^0-9.]%', MyColumn)-1) FROM MyTable
のようになります。あなたはこれを使用して(古い答えを)テストすることができますSQL Fiddle
+0
ありがとう!これは私が必要としていたものに完璧でした。あなたは時間をとっていただきありがとうございます。 –
関連する問題
- 1. バイトデータから浮動小数点数を抽出する
- 2. 小数点記号を抽出する
- 3. vbaの浮動小数点からビットを抽出する
- 4. Regex - 文字列から数値(2小数点以下)を抽出します。
- 5. PHPの文字列から浮動小数点数を抽出する
- 6. NumPyでの浮動小数点仮数と指数の抽出
- 7. 文字列の文から整数、小数点、および小数を抽出する
- 8. 小数点から偶数の小数点の変換をC#
- 9. インタリーブされた浮動小数点データの抽出
- 10. 固定小数点から浮動小数点へ
- 11. 固定小数点から浮動小数点データへ
- 12. sparkデータフレームキャスト小数点(33,16)から浮動小数点へ
- 13. C++でファイルの特定の行から数値(浮動小数点数)を抽出する方法は?
- 14. Python:複雑なディレクトリツリー内のファイルから浮動小数点数を抽出する - ループは答えですか?
- 15. 浮動小数点/小数点から小数点以下3桁までを正確に丸めますか?
- 16. awkとgrepで負/正の浮動小数点数を抽出します。
- 17. PHP、浮動小数点数に文字列を抽出する正規表現
- 18. SAS - 文字列から符号付き浮動小数点数を抽出する
- 19. RのPOSIXctオブジェクトから2番目の浮動小数点数を抽出するには?
- 20. 浮動小数点リストのgcd - 小数からの不正な出力
- 21. テーブルから小数点を取得
- 22. エンティティフレームワークを小数点からフィールドへ
- 23. 浮動小数点数は浮動小数点数ですか?
- 24. 小数点浮動小数点(C++)
- 25. 文字列から整数と浮動小数点数を取り出す
- 26. C#での小数点から浮動小数点への変換の問題
- 27. フラグメントハードウェアからの浮動小数点
- 28. intから小数点へのキャスト
- 29. Ocaml CSVから浮動小数点リスト
- 30. 浮動小数点の小数点以下2桁までの出力
文字列に一貫したパターンがあります(数字は常に最初の3文字です)。 –
デイヴィッド。はい、先頭の文字は常に数字になります。私の質問は答えられました。ありがとう!! –