T-SQL如何从一列中选择没有重复值的行?

Ton*_*ony 5 sql t-sql sql-server

我有一个2列的表 ID, ID_PROJ_CSR

该表的内容是:

ID     ID_PROJ_CSR
------------------
747    222   <
785    102
786    222   <
787    223
788    224
Run Code Online (Sandbox Code Playgroud)

我想选择ID,但是如果ID_PROJ_CSR中的任何值是重复的,我需要选择包含该重复值的行的任何ID(在该示例中,选择ID 747786)

我尝试:

SELECT * FROM my_table tab 
WHERE tab.id_proj_csr = (SELECT TOP 1 id_proj_csr
                         FROM my_table mt
                         WHERE mt.id_proj_csr = tab.id_proj_csr)
Run Code Online (Sandbox Code Playgroud)

cjk*_*cjk 16

你需要GROUP BY:

SELECT MAX(ID) as [ID], ID_PROJ_CSR
FROM my_table
GROUP BY ID_PROJ_CSR
Run Code Online (Sandbox Code Playgroud)