[英]How to select max number from varchar type value
我有一張桌子,如下所示:
+-----------+------------+----------+------------+
| letter_no | year_index | auto_no | date_stamp |
+-----------+------------+----------+------------+
| 1 | 100 | 2018-100 | 2018-12-30 |
| 2 | 101 | 2018-101 | 2018-12-30 |
| 3 | 102 | 2018-102 | 2018-12-31 |
| 4 | 1 | 2019-001 | 2019-01-01 |
| 5 | 2 | 2019-002 | 2019-01-01 |
| 6 | 3 | 2019-003 | 2019-01-02 |
+-----------+------------+----------+------------+
第三列包含一個自動生成的數字,該數字由當年,連字符和索引號(始於001)組成。“自動”字段為varchar()。
所以。 我只需要從自動編號(例如100、101、102、1、2和3等)中選擇編號(不帶年份,連字符或零)。
我使用以下查詢獲取所需的輸出
從字母中選擇max(cast(cast(substring('auto_no',2)assigned)))。
但是我不確定放置在查詢中的值(2)是否未獲得所需的輸出。 誰能幫我 ?
使用substring_index()
和隱式轉換。 例如:
select max(substring_index(auto_no, '-', -1) + 0)
from letter;
您可以使用substring_index
嘗試此查詢,並trim
掉前導零:
select trim(leading '0' from
substring_index(auto_no, '-', -1))
from tbl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.