[解決済み] 複数の値を同時に置換する - 文字列を数値に変換するために
2022-03-12 08:22:18
質問
varcharフィールドを数値に変換しようとしていますが、そのフィールドの中には、数値に変換するために削除しなければならない一般的な文字が含まれています。
フィールド名はUKSellPrice1です。
UKSellPrice1 を数値に変換する前に、以下の文字列を削除する必要があります。
'.00'
'£'
'n/a'
'$'
'#N/A'
どうすればいいのでしょうか?
今のところ、以下のようになっています。
;WITH R0 AS (
SELECT StyleCode
,ColourCode
,UKSellPrice1= CASE WHEN CHARINDEX('.00',UKSellPrice1,1) > 0
THEN REPLACE (UKSellPrice1,'.00','')
ELSE UKSellPrice1 END
,UKSellPrice2
FROM dbo.RangePlan
)
SELECT *
FROM R0
解決方法は?
2つのアプローチが考えられますね。
1つ目は、ネストされた多数の
replace()
ステートメントを使用します。
select replace(replace(replace(col, '$', ''), '£', ''), 'n/a', '')
といった具合です。
もうひとつは、1桁目の数字を見つけ、そこから変換してみるというものです。 これには
patindex()
. 以下はその例である。
select cast(left(substring(col, patindex('%[0-9]%', col), 1000),
patindex('%[^0-9]%', substring(col, patindex('%[0-9]%', col), 1000)) - 1
) as int)
関連
-
[解決済み] テーブルのFROM句の項目がない [終了しました] 。
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] Varchar は Sum 演算子では無効です。
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
-
[解決済み] MySQL Select Query - 値の最初の10文字だけを取得する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CREATE VIEW は、バッチ内の唯一のステートメントでなければなりません。
-
[解決済み] ERROR: 参照されたテーブル "bar" の与えられたキーに一致するユニークな制約がありません。
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み] テスト
-
[解決済み】Athena: スケールファクターでリソースを使い果たすクエリ
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] VBA - ADODB.CommandTextの実行