簡體   English   中英

SQL Server從一列中選擇最大值,然后檢查該值是否存在於另一張表中

[英]SQL Server select the max value from one column and check if the value exists in another table

我正在使用SQL Server,並且正在為INSERT語句工作。

這是我的步驟:

步驟1 :從table A的列中選擇最大值。 該列中的值未序列化。 然后加+1(例如,最高值為45,則此步驟的最終結果為46)

步驟2 :然后,檢查46是否存在於table B

步驟3 :如果table B存在該數字,則再次加1並再次檢查。

知道如何編碼嗎?

如果可能,請使用“序列”。 它生成數值序列,並且可以在表之間共享。

除此以外

SELECT MAX(MAXVAL) FROM 
 (
    SELECT MAX(VAL) AS MAXVAL FROM TableA
    UNION
    SELECT MAX(VAL) AS MAXVAL FROM TableB
 )T

您可以編寫遞歸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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM