我正在使用SQL Server,而我正在使用INSERT语句。
这是我的步骤:
第1步:从table B
中的列中选择最高值。该列中的值未序列化。然后添加+1(例如,最高值为45,则此步骤的最终结果为46)
第2步:然后,检查table B
第3步:如果"0123456789abcdefghijklmnopqrstuvwxyz"
中存在该号码,则再次递增1并再次检查。
知道如何编写代码?
答案 0 :(得分:2)
如果可能,请使用“序列”。它生成数值序列,并且可以在表之间共享。
否则
SELECT MAX(MAXVAL) FROM
(
SELECT MAX(VAL) AS MAXVAL FROM TableA
UNION
SELECT MAX(VAL) AS MAXVAL FROM TableB
)T
答案 1 :(得分:0)
您可以编写递归CTE来实现此目的。
以下是示例代码
;WITH CTE AS
(
SELECT MAX(VAL)+1 AS MAXVAL FROM TableA
),CTE2 AS
( SELECT MAX(VAL) +1 AS MAXVAL FROM TableB where exists (SELECT 1 FROM CTE WHERE MAXVAL=TableB.MAXVAL)
)
SELECT MAXVAL FROM CTE2