Sql 在列中查找具有匹配值的记录
我想返回在phoneBox DB中具有匹配PhoneboxRecordId的所有记录Sql 在列中查找具有匹配值的记录,sql,Sql,我想返回在phoneBox DB中具有匹配PhoneboxRecordId的所有记录 SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH 将返回: Id phoneBoxRecordIDs colour 4 492948 Blue 9 492948 Brown 27 492948 Pink 您可以按count>1的字段分组, 但这只会返回phoneboxrecordid
SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH
将返回:
Id phoneBoxRecordIDs colour
4 492948 Blue
9 492948 Brown
27 492948 Pink
您可以按count>1的字段分组, 但这只会返回phoneboxrecordid和具有该id的记录的数量 选择计数*[计数] ,PhoneBoxRecordId 从电话亭 按PhoneBoxRecordId分组
让Count*>1如果希望PhoneBoxRecordId多次出现的行,则ANSI标准方法使用窗口函数:
select pb.*
from (select pb.*, count(*) over (partition by phoneBoxRecordIDs) as cnt
from phoneBox
) pb
where cnt > 1
order by phoneBoxRecordIDs;
您还可以通过仅在存在匹配记录时返回记录来完成此操作:
select pb.*
from phoneBox pb
where exists (select 1
from phoneBox pb2
where pb2.phoneBoxRecordIDs = pb.phoneBoxRecordIDs and
pb2.id <> pb.id
);
我删除了不兼容的数据库标记。标记您真正使用的数据库。还有,匹配什么?匹配错了,这是我想做的一个例子,但我不确定如何做。我想返回phoneBox表中的所有记录,其中PhoneBoxRecordId列中存储的任何值与同一列中存储的任何其他值匹配。听起来您必须在where子句中使用嵌套的select语句。请提供所需的所有表。OP不完整您必须显式声明连接。。。原始风格很快就会过时