ユーザー定義関数をまとめて varchar を数値に変換するためのヒントを探しています。トリックは、文字列の一般的なテキスト表現を数値に変換するものを求めていることです。また、数値として解析できない場合は、エラーをスローしてクエリを停止するのではなく、NULL を返したいと思います。
例:
- varchar '10%' は数値 0.1 として解析する必要があります (% 記号を削除せず、100 で割ります)
- varchar '$1,00.1234' は数値 100.1234 として解析する必要があります ($ 記号と , を削除します)
- varchar '$1k' は数値 1000 として解析する必要があります (k は 1000 倍に変換されます)
- varchar '$1M' は数値 1000000 として解析する必要があります (m は 100 万倍に変換されます)
- varchar '$1B' は数値 1000000000 として解析する必要があります (b は 10 億倍に変換されます)
- varchar '100 ' は数値 1000 として解析する必要があります (LTrim & RTrim)
- varchar 'Random Text' は数値の NULL として解析する必要があります (Null はエラーをスローしません)