Sql 返回包含所有列但其中一列唯一的记录(不同)
我的数据库中有20列。我只需要选择那些具有不同Ref_ID的,但如果我使用distinctref_ID,我只会得到这些值的列表。我需要检索所有列,例如所有记录,但具有不同的ref_id。 我正在使用Oracle 9g。Sql 返回包含所有列但其中一列唯一的记录(不同),sql,oracle,Sql,Oracle,我的数据库中有20列。我只需要选择那些具有不同Ref_ID的,但如果我使用distinctref_ID,我只会得到这些值的列表。我需要检索所有列,例如所有记录,但具有不同的ref_id。 我正在使用Oracle 9g。 例如,共有10条记录,其中5条具有相同的引用id。因此,select应仅返回这5条记录的所有列 很难说出您的意思,但这里有一个想法,这将返回表中多次包含的REF_ID值: select * from YOUR_TABLE where REF_ID in( select R
例如,共有10条记录,其中5条具有相同的引用id。因此,select应仅返回这5条记录的所有列 很难说出您的意思,但这里有一个想法,这将返回表中多次包含的REF_ID值:
select * from YOUR_TABLE
where REF_ID in(
select REF_ID from YOUR_TABLE
group by
REF_ID
having
count(REF_ID) > 1)
很难说出您的意思,但这里有一个想法,这将返回表中多次包含的REF_ID值:
select * from YOUR_TABLE
where REF_ID in(
select REF_ID from YOUR_TABLE
group by
REF_ID
having
count(REF_ID) > 1)
试试这个:
数据:
输出:
RANK D_LET D_NUM
1 a 1
1 b 3
1 c 2
试试这个:
数据:
输出:
RANK D_LET D_NUM
1 a 1
1 b 3
1 c 2
另一个解决方案:
SELECT *
FROM TableX t
WHERE EXISTS
( SELECT *
FROM TableX tt
WHERE tt.REF_ID = t.REF_ID
AND tt.PK <> t.PK --- the Primary Key of the table
)
另一个解决方案:
SELECT *
FROM TableX t
WHERE EXISTS
( SELECT *
FROM TableX tt
WHERE tt.REF_ID = t.REF_ID
AND tt.PK <> t.PK --- the Primary Key of the table
)
或许应该举个例子。很难说你是什么意思。不同的引用ID,col1,col2,col3,…那么存在多个具有相同引用ID的记录?然后要从哪个记录检索其他列?您使用的是哪种SQL方言?可能应该给出一个示例。很难说你是什么意思。不同的引用ID,col1,col2,col3,…那么存在多个具有相同引用ID的记录?然后要从哪个记录检索其他列?你用的是哪种SQL方言?很公平,你的答案比我的答案快了4秒,让我们用你的:很公平,你的答案比我的答案快了4秒,让我们用你的: