SQL Server 2008-选择查询特定项
我有一个有很多列的表,我正试图运行一个查询,但是我很难找到它。这就是我的桌子的样子SQL Server 2008-选择查询特定项,sql,sql-server-2008,select,Sql,Sql Server 2008,Select,我有一个有很多列的表,我正试图运行一个查询,但是我很难找到它。这就是我的桌子的样子 clientID Code ----------------------- 17 DAC7 19 DAC8 20 TIM19 21 DAC7 89 TIM19 在这里,我有两个专栏(还有很多,但它们实际上并不相关)。所以我面临的问题是,每个客户端都应该有不
clientID Code
-----------------------
17 DAC7
19 DAC8
20 TIM19
21 DAC7
89 TIM19
在这里,我有两个专栏(还有很多,但它们实际上并不相关)。所以我面临的问题是,每个客户端都应该有不同的代码,但是可能有两个不同的客户端有相同的代码,这正是我想要找到的。如果你看上面,客户机17和21有DAC7,客户机20和89有TIM19
我如何查询此表以仅显示有多个代码实例的数据,例如
SELECT ClientID, Code
FROM TblA
WHERE Count (code) > 1
ORDER by Code
我希望的最终结果
17 DAC7
21 DAC7
89 TIM19
20 TIM19
您可以使用以下查询获取重复的
code
值:
SELECT Code
FROM TblA
GROUP BY Code
HAVING COUNT(*) > 1
使用此查询作为派生表,您可以连接
回到原始表,以获得客户ID
字段:
SELECT t1.ClientID, t1.Code
FROM TblA AS t1
JOIN (
SELECT Code
FROM TblA
GROUP BY Code
HAVING COUNT(*) > 1
) AS t2 ON t1.Code = t2.Code
您的想法是正确的,但您必须使用
分组方式。。。使用
获取重复代码:
SELECT Code
FROM TblA
GROUP BY Code
HAVING COUNT(*) > 1
然后在子查询或派生表中使用它来获取ID
s
子查询选项:
SELECT ClientID, Code
FROM TblA
WHERE Code IN (SELECT Code
FROM TblA
GROUP BY Code
HAVING COUNT(*) > 1)
ORDER BY Code
您可以在()上使用count()
只需使用以下命令:
SELECT ClientID, Code, COUNT(*) AS CNT
FROM Table
GROUP BY ClientID, Code
Having
COUNT(*) > 1
您也可以在语句中使用
来执行此操作:
SELECT clientID, code
FROM T
WHERE code IN
(SELECT code
FROM T
GROUP BY code
HAVING COUNT(*) > 1)
ORDER BY code
此处测试:
SELECT clientID, code
FROM T
WHERE code IN
(SELECT code
FROM T
GROUP BY code
HAVING COUNT(*) > 1)
ORDER BY code