SQL语句,试题

来源:百度知道 编辑:UC知道 时间:2024/07/05 20:01:32
表 观众资料登记表
字段:编号,单位名称,姓名,手机.....
数据:.............................
题1:请查询姓名与手机重复的记录
题2:请查询一个单位名称有不同编号记录
题3:请查询一个单位名称只出来一条记录
比如有两条记录 编号 单位名称 姓名 手机
001 协广 张三 137
001 协广 李四 138
随便只出现其中任务一条
请用SQL语句写出来
不是自动编号,允许重复,所有字段都是字符串,没有主建,字段值不唯一!
请看题目,是试题,编号无限定,可重复,要得到的是所有项 前面最好是 select *

题1:请查询姓名与手机重复的记录
SELECT *
FROM 观众资料登记表 a
WHERE [姓名]+[手机] IN
(SELECT [姓名]+[手机]
FROM 观众资料登记表 b
GROUP BY [姓名],[手机]
HAVING COUNT(*)>1
)

题2:请查询一个单位名称有不同编号记录
SELECT *
FROM 观众资料登记表 a
WHERE [单位名称] IN
(SELECT [单位名称]
FROM 观众资料登记表 b
GROUP BY [单位名称]
HAVING COUNT(*)>1
)

题3:请查询一个单位名称只出来一条记录
如果[编号][单位名称]是两个同时重复的话,如下:
SELECT DISTINCT [编号],[单位名称],
(SELECT TOP 1 [姓名] FROM [观众资料登记表] b WHERE a.[单位名称] = b.[单位名称]) AS [姓名],
(SELECT TOP 1 [手机] FROM [观众资料登记表] b WHERE a.[单位名称] = b.[单位名称]) AS [手机]
FROM [观众资料登记表] a

如果只有[单位名称]重复,而[编号]不一定也相同的情况下,如下:
SELECT DISTINCT [单位名称],
(SELECT TOP 1 [编号] FROM [观众资料登记表] b WHERE a.[单位名称] = b.[单位名称]) AS [编号],
(SELECT TOP 1 [姓名] FROM [观众资料登记表] b WHERE a.[单位名称] = b.[单位名称]) AS [姓名],
(SELECT TOP 1 [手机] FROM [观众资料登记表] b WHERE a.[单位名称] = b.[单位名称]) AS [手机]
FROM [观众资料登记表] a

1。
select * from 登记表 gr