Sql 获取下一个事务号

Sql 获取下一个事务号,sql,sqlite,Sql,Sqlite,我的事务ID(varchar)包含以下模式 DXB1 DXB2 ..... DXB15 ... DXB200 下一个事务id是DXB201,如何从SQL查询中获取该事务id 我正在使用 SELECT MAX(transaction_id) AS Expr1 FROM transaction_master WHERE (transaction_id LIKE 'DXB%') 但在查询返回DXB9后,它无法给出正确的输出,即使DXB15存在如果DXB部分后面的所有字符都是数字,则以下

我的事务ID(varchar)包含以下模式

DXB1
DXB2
.....
DXB15
...
DXB200
下一个事务id是DXB201,如何从SQL查询中获取该事务id

我正在使用

SELECT  MAX(transaction_id) AS Expr1
FROM    transaction_master
WHERE   (transaction_id LIKE 'DXB%')

但在查询返回DXB9后,它无法给出正确的输出,即使DXB15存在

如果
DXB
部分后面的所有字符都是数字,则以下操作应有效:

Select  'DXB' || Next As NextTransactionId
From
(
  Select    Max(Cast(Replace(Transaction_Id, 'DXB', '') As Int)) + 1 As Next
  FROM      transaction_master
  WHERE     (transaction_id LIKE 'DXB%')
)

这就是字符串排序的作用。您需要拉出数字组件。您使用的是什么DBMS产品?SQL Server?MySQL?神谕还有什么?你的问题是你要求你的RDBMS把varchar当作一个数字来对待。您的查询以词汇术语给出了正确的结果;“DXB9”确实比“DXB15”更大(后面会按字母顺序排列)@Siyual:我使用SQLite作为后端C#作为前端