-3

ユーザー定義関数をまとめて 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 はエラーをスローしません)
4

1 に答える 1

2

この複雑さを解析するには、CLR 関数を使用することをお勧めします。次にデータを修正します

数値以外の値に加えて、通貨、パーセンテージ、小数/区切り記号の混合形式が混在しています。

于 2012-10-31T10:25:30.040 に答える