SQL 从 select 和数学运算中插入

SQL Insert from a select and a math operation

我正在使用 LibreOffice base,因为我需要在 Windows 和 OSX 中使用相同的数据库。

我有一个 table 有数百个 CLIENT_ID 作为主键和 CLIENT_NAME 作为字段。主键长度为 6 个字符:

CLxxxx

我希望能够插入一个新客户端并使用单个 SQL 语句来完成,而不是 VBA 或 PHP。就像使用自动编号一样。

我想做的是:

1) 获取最高键,从中删除"CL"。例如。对于 CL0344,我需要 0344

2) 将最高密钥加1以获得新客户端的新密钥:0355

3) 在 table

中插入新的 CLIENT

第一点很容易实现:

SELECT TOP 1 RIGHT(CLIENT_ID,4) AS LAST_RECORD FROM CLIENTS
ORDER BY CLIENT_ID DESC

但是如何将此 select 的结果加 1 并使用相同的语句进行插入?

您可以使用这个查询:-

 SELECT CAST(RIGHT(MAX(CLIENT_ID),4) AS INTEGER) + 1
 FROM CLIENTS;