需要在t-sql中进行简单查询

时间:2011-10-14 17:24:05

标签: tsql

我有一个我为了我们的目的而简化的查询。你是如何实现这一结果的?

ID OrigId
----------
1   1
2   1
3   3
4   4
5   4
6   6

Result

ID OrigId
----------
1   1
2   1
4   4
5   4

3 个答案:

答案 0 :(得分:4)

要在表格中多次显示相应OrigId出现的所有行,您可以使用

;WITH CTE AS
(
SELECT *,
       COUNT(*) OVER (PARTITION BY OrigId) AS C
FROM YourTable
)
SELECT ID,
       OrigId
FROM CTE
WHERE C >1

答案 1 :(得分:3)

您可以使用HAVING语句

SELECT *
FROM dbo.Table
WHERE OrigID IN
(
SELECT OrigID
FROM dbo.Table
GROUP BY OrigID
HAVING COUNT(*) > 1
)

答案 2 :(得分:0)

select *
from selecttest
where origid in
(
    select origid
    from selecttest
    group by origid
    having COUNT(*) > 1
)