我正在使用 PostgreSQL 8.1.17,并且我有一个包含帐号的表。帐号的可接受范围是 1 到 1,000,000 之间的数字(六位数字)。 “acctnum”列包含帐号。选择所有正在使用的数字很容易(SELECT acctnum FROM tbl_acct_numbers ORDER BY acctnum)。我想要做的是选择可接受范围内未使用的所有数字,即在 acctnum 列中的任何行中都找不到它们。
最佳答案
SELECT
new_number
FROM
generate_series(1, 1000000) AS new_number
LEFT JOIN tbl_acct_numbers ON new_number = acctnum
WHERE
acctnum IS NULL;
关于SQL:获取其他行未使用的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823935/