7

在我的表中,一些记录的所有列值都相同,除了一个。我需要编写一个查询来获取这些记录。最好的方法是什么?表格是这样的:

 colA  colB colC
   a     b    c
   a     b    d
   a     b    e

获取所有列的所有记录的最佳方法是什么?感谢大家的帮助。

4

4 回答 4

8

假设您知道 column3 总是不同的,以获取具有多个值的行:

SELECT Col1, Col2
FROM Table t
GROUP BY Col1, Col2
HAVING COUNT(distinct col3) > 1

如果您需要三列中的所有值,则可以将其连接回原始表:

SELECT t.*
FROM table t join
     (SELECT Col1, Col2
      FROM Table t
      GROUP BY Col1, Col2
      HAVING COUNT(distinct col3) > 1
     ) cols
     on t.col1 = cols.col1 and t.col2 = cols.col2
于 2012-06-06T19:41:10.790 回答
1

只需选择那些具有不同值的行:

SELECT col1, col2
FROM myTable
WHERE colWanted != knownValue

如果这不是您要查找的内容,请在表中发布数据示例和所需输出。

于 2012-06-06T19:10:08.300 回答
1

像这样的东西怎么样

SELECT Col1, Col2
FROM Table
GROUP BY Col1, Col2
HAVING COUNT(*) = 1

这将为您提供具有唯一数据的 Col1、Col2。

于 2012-06-06T19:28:31.987 回答
0

假设 col3 有差异

SELECT Col1, Col2
FROM Table
GROUP BY Col1, Col2
HAVING COUNT(*) > 1

或显示所有 3 个 COLS

SELECT Col1, Col2, Col3
FROM Table1
GROUP BY Col1, Col2, Col3
HAVING COUNT(Col3) > 1
于 2012-06-06T20:00:06.473 回答