2011-02-10 72 views
1

我試圖做一些看似簡單的事情。選擇ID,其中表行數= 1

我想從一個表的人返回列值(ID),其中中行人士計數= 1

因此,像:

SELECT Person.Id 
FROM (select Count(*) from Person Having Count(*)=1); 

但它不工作。任何非常感謝。

+0

你能改寫選擇Person.Id 從一個人 組由Person.Id ,作爲一個要求或更高級別的問題:你的英文解釋基本上是用SQL來說的。你似乎在說你想選擇一個人的身份,只有一個人?如果有兩個呢?這沒什麼意義,所以更多的背景將幫助我們回答這個問題。 – 2011-02-10 16:16:03

+0

值得一提的是,大多數答案都假設你的人員表可能有相同的ID重複 - 這顯然是不好的。我希望那不是你問的問題? – 2011-02-10 16:17:41

回答

0
select person.id from person where ((select count(*) from person) = 1) 

你會得到NULL,如果表是空的,或有超過一排。

0

您是否在尋找重複的ID?

SELECT ID FROM Person p1 WHERE (SELECT COUNT(*) FROM Person p2 WHERE p1.ID = p2.ID) > 1 
1

簡單:

select id from (
    select p.id, count(1) cnt 
    from Person p 
    group by p.id 
) 
where cnt = 1 

功課? )

0

嘗試這種情況:

具有COUNT(*)= 1

相關問題