我有两个值数组,如 X、Y、Z 和 1,2 有一个表 A 有两列。我想验证表 A 中所有组合的记录是否存在,无论是否重复。例如
X 1
Y 1
Z 1
X 2
Y 2
Z 2
提前致谢!
无论值如何,以下内容都应该起作用:
select col1, col2
from (select distinct col1 from combtest), (select distinct col2 from combtest)
minus
select col1, col2
from combtest
首先它得到可能的组合,然后减去实际的组合。
这适用于任何数据集,并且不假设您知道表中的值。
该查询返回所有丢失的行。您可以轻松地将其转换为插入语句来填充您的表。
SELECT *
FROM
(select * from (SELECT DISTINCT col1 FROM table1) CROSS JOIN (SELECT DISTINCT col2 FROM table1)) AS t1
LEFT OUTER JOIN table1 ON t1.col1 = table1.col1 AND t1.col2 = table1.col2
WHERE
table1.col1 is null