![](/img/trans.png)
[英]MySQL - Extract only the starting numeric characters from a Text type value
[英]sql extract only numeric value from column
我有一個名為“memo_line_2”的列,值格式類似於:“$3000.00(卡限額增加)”,我如何僅從該列中提取數值?謝謝示例:
'$3000.00 (card limit increase)' -> 3000
'$5000.00 (card limit increase)' -> 5000
'$12000.00 (card limit increase)' ->12000
您可以REGEXP_SUBSTR()
使用REGEXP_SUBSTR()
:
SELECT REGEXP_SUBSTR(tmp.`value`, '[0-9]+') as `new_value`
FROM (SELECT '$3000.00' as `value` UNION ALL
SELECT '$5000.00' as `value` UNION ALL
SELECT '$12000.00' as `value`) tmp
返回:
new_value
---------
3000
5000
12000
如果您想保留小數點后的所有內容,請使用'[0-9.]+'
作為正則表達式過濾器。
如果您的數據將始終采用這種格式,您可以使用以下查詢來選擇$
和 之間的數據.
:
SELECT substring_index(substring_index(memo_line_2, '$', -1), '.', 1)
FROM your_table;
您可以使用:
select regexp_substr(col, '[0-9]+[.]?[0-9]*')
這將提取帶有美分的數字。 然后,您可以轉換為整數或數字:
select cast(regexp_substr(col, '[0-9]+[.]?[0-9]*') as unsigned)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.