1

我有两个值数组,如 X、Y、Z 和 1,2 有一个表 A 有两列。我想验证表 A 中所有组合的记录是否存在,无论是否重复。例如

X 1

Y 1

Z 1

X 2

Y 2

Z 2

提前致谢!

4

2 回答 2

2

无论值如何,以下内容都应该起作用:

select col1, col2
from (select distinct col1 from combtest), (select distinct col2 from combtest)
minus
select col1, col2
from combtest

首先它得到可能的组合,然后减去实际的组合。

于 2009-08-27T04:22:00.483 回答
1

这适用于任何数据集,并且不假设您知道表中的值。

该查询返回所有丢失的行。您可以轻松地将其转换为插入语句来填充您的表。

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
于 2009-08-27T03:28:46.457 回答