簡體   English   中英

SQL子查詢(在何處)

[英]SQL Sub-query (Where In)

我的子查詢出現錯誤,沒有看到我在做什么錯。 子查詢在它上工作。 哪里有問題顯然是什么問題。 還嘗試了EXISTS。

select [ID NUMBER], [PERNO], [TITLE], [INITIALS], [SURNAME], [DATE OF BIRTH] 
from dbo.[DATASEPT002] 
WHERE [ID NUMBER] IN 
( SELECT [ID NUMBER], COUNT([PERSALNO]) AS COUNTOF 
FROM [dbo].[DATASEPT] 
GROUP BY [ID NUMBER] HAVING COUNT([PERSALNO]) >1 )

您在子查詢中有兩列。 IN比較只能使用一個:

select [ID NUMBER], [PERNO], [TITLE], [INITIALS], [SURNAME], [DATE OF BIRTH] 
from dbo.[DATASEPT002] t
WHERE [ID NUMBER] IN (SELECT [ID NUMBER]
                      FROM [dbo].[DATASEPT] 
                      GROUP BY [ID NUMBER] 
                      HAVING COUNT([PERSALNO]) > 1
                     );

但是,我通常使用窗口函數來表達這一點:

select t.*
from (select t.*, count(*) over (partition by persalno) as cnt
      from DATASEPT002 t
     ) t
where cnt > 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM