私はこの赤方偏移SQLクエリを持っています。私は "REGEXP_SUBSTR"関数を使ってコメントから10進数の数字を抽出しました。私もそれを文字列から数値/小数に変換する必要があります。それから、その数を合計から引く必要があります。文字列を10進数のレッドシフトに変換するSQL
私は赤方偏移SQLの「TO_NUMBER」機能を使用してみましたが、そのは私に次のことを与えてこれは私のクエリ
SELECT sc.comment,
sm.subtotal,
to_number(REGEXP_SUBSTR(sc.comment, '[0.00-9]+..[0.00-9]+', 1),'9999999D99')
FROM "sales_memo_comments" sc INNER JOIN "sales_memo" sm ON sc.foreign_id = sm.parent_id
です:ERROR:タイプの数値のための無効な入力構文:「」
この電流出力はコメント欄から数還付量を抽出前に、次のとおりです。
comment
"SAR719.00 Refund transaction executed successfully, Refund Request ID:504081288877953603 \n , Authorization Code:095542 "
"AUD52.07 Refund transaction executed successfully, Refund Request ID:6J45695858A90833"
Canceled by : [email protected]
refund amount is [MYR197.41]
"Please Ignore Order refunded by Refund Request ID:5002758809696048 , Authorization Code:2587759"
OMR37.83($98.23) Refund transaction executed successfully
これはusin後にそれでありますg REGEXPで上記のSQLクエリを実行します。私はまだいくつかの異常があります。私は別の数値で減算を行うために、私は数値に私の文字列の正規表現に変換するにはどうすればよい
comment
719
52.07
.co.
197.41
5.0027621
37.83($98.23
二つの質問
- カラム?
ご協力いただければ幸いです。ここで
すべての行に対してRegexを使用して文字列から数値を抽出できますか?特定の行の変換エラーに遭遇している可能性があります.1つまたは複数の行は、数値に変換するのに望ましい形式ではない可能性があります。 – Yankee
はい、正しいですが、Regexを使用した後にいくつかの空の行があります。コメント欄に払い戻しが記録され、コメントの中には数字が入力されていないものがあります。 –
コメント欄には数字の払い戻し金額が表示され、数字の隣に「$」記号があり、その他には小数点以下の(人為的な)誤差があります。その約20%のデータがそうです... –