簡體   English   中英

如何從varchar類型值中選擇最大數量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM