我有一张桌子,如下:
+-----------+------------+----------+------------+
| 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)是否未获得所需的输出。谁能帮我吗?
答案 0 :(得分:4)
使用substring_index()
和隐式转换。例如:
select max(substring_index(auto_no, '-', -1) + 0)
from letter;
答案 1 :(得分:0)
您可以尝试使用substring_index
和trim
来删除前导零:
select trim(leading '0' from
substring_index(auto_no, '-', -1))
from tbl