选择所有行在两列中具有相同值的记录

3 sql sql-server-2008

这是我的样本表

Col1   Col2
 A      1
 B      1
 A      1
 B      2
 C      3
Run Code Online (Sandbox Code Playgroud)

我希望能够选择不同的记录,其中所有行在Col1和Col2中具有相同的值.所以我的回答应该是

Col1   Col2
 A      1
 C      3
Run Code Online (Sandbox Code Playgroud)

我试过了

SELECT Col1, Col2 FROM Table GROUP BY Col1, Col2
Run Code Online (Sandbox Code Playgroud)

这给了我

Col1   Col2
 A       1
 B       1
 B       2
 C       3
Run Code Online (Sandbox Code Playgroud)

这不是我要找的结果.任何提示将不胜感激.

Mos*_*cho 5

试试这个:

SELECT col1, MAX(col2) aCol2 FROM t
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 1
Run Code Online (Sandbox Code Playgroud)

输出:

| COL1 | ACOL2 |
|------|-------|
|    A |     1 |
|    C |     3 |
Run Code Online (Sandbox Code Playgroud)

小提琴这里.

基本上,这可以确保量的不同值col2对于给定唯一的col1.