繁体   English   中英

SQL查询以选择varchar字段的最大值

[英]SQL query to select max value of a varchar field

我想选择一个varchar字段的最大值,并将其值加1,保留其原始格式。

客户编号 CUS0000001是值

向其添加1,然后将其与其他详细信息一起输入数据库。

因此结果应类似于CUS0000002 ..

这是我尝试过的,实际上达到了我想要的..

但这是最好的方法吗?

SELECT 
   CONCAT('CUS', RIGHT(CONCAT('000000', CONVERT((CONVERT(MAX(RIGHT(customer_id, 7)) , UNSIGNED) + 1), CHAR(10))), 7)) AS customer_id 
FROM customer_master

我同意评论者的意见,认为数据库不应像这样设计。 但是,如果您坚持使用它,我建议使用类似的方法以获得最高的价值:

select customer_id from customer_master 
    order by customer_id desc 
    fetch first row only;

然后通过对返回的结果执行逻辑来生成新值。 这将更快,因为子字符串操作将非常慢,并且在这种情况下,它们将仅执行一次。

(这假设每个ID都具有相同的前缀,即“ CUS”;但是,您的代码似乎暗示了这一点)。

SELECT MAX(RIGHT(CusID, 7)) AS id
FROM tblCustomer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM