[解決済み] SQLでnvarcharをfloatに変換する
2022-02-07 15:56:58
質問
テーブルとカラム
Quantity
元のテーブルでは、このカラムは次のように定義されています。
nvarchar(100)
ということで、分析するためにfloatにキャストする必要があります。
CAST([Quantity] AS FLOAT) AS Quantity
問題は、以下のような浮動小数点に変換できない値があることです。
No-Quantity
,
Return
などです。これらの値を除外して、残りをfloatに変換するフィルタが欲しいのですが、オプションとしてwhere節を使用することができます。
WHERE Quantity IN ('Return', 'Sales')
もし、元のテーブルに新しい値があれば、それが何であるかを調べて、where節に追加する必要があるからです。
変換できない値を識別する良い方法はないでしょうか?
どのように解決するのですか?
どのデータベースでも
cast()
とこんな感じです。
(case when quantity not in ('No-Quantity', 'Return', . . .)
then CAST([Quantity] as float)
end) as Quantity
は
in
のリストは、既知の文字列値のリストとなる。
また、このような簡易的なチェックも可能です。
(case when left(quantity, 1) between '0' and '1'
then CAST([Quantity] as float)
end) as Quantity
(注意)
substr()
または
substring()
ではなく
left()
.)
そして、一般的に、どんな特定のデータベースでも、変換を助けることができる特定の関数を持っています、例えば
try_convert()
というコメントで紹介されています。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】データベースへの「ネイティブ」SQL接続を使用するとはどういう意味ですか?
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み】ORA-01791: SELECTされた式ではない
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。