簡體   English   中英

SQL Server:同一表中具有相同行值的兩列

[英]SQL Server : two columns with the same row values in the same table

我有一個龐大的數據集,大約有40萬行。 我只想選擇同一表的第三列( ecr )中第二列( val )的值所在的行。

例如,在下面所示的樣本屏幕截圖,該列的值val在第二行(4294939057)等於列的第三行值ecr

我嘗試使用以下查詢,但它似乎沒有提供正確的行。

任何提示將不勝感激。

use dbTest

select val, ecr 
from tableTest 
group by val 
having COUNT (val) > 1

我正在使用SQL Server 2008。

在此處輸入圖片說明

您應該使用自我聯接(由於表的尺寸,您可能需要在val和ecr上使用適當的分隔索引)

select a.*, b.* 
from tableTest as a 
  inner join tableTest as b  
    on a.val  = b.ecr 

如果您不希望內部聯接的完整輸出,則可以使用如下所示的內容:

select *
from tableTest as t
where exists (
  select 1 
  from tableTest as i  
  where t.val  = i.ecr
  )

除了聯接之外,另一個選項是子查詢:

SELECT *
FROM tableTest
WHERE val IN (SELECT ecr FROM tableTest)

暫無
暫無

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

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