求出现部分字段重复的数据只显示一次
例如:
id name gender course score
A001 Jason 男 英语 90
A001 Jason 男 数学 80
B002 Angle 女 语文 95
B002 Angle 女 英文 100
C003 William 男 数学 95想得到显示的结果如下: id name gender course score
A001 Jason 男 英语 90
数学 80
B002 Angle 女 语文 95
英文 100
C003 William 男 数学 95
例如:
id name gender course score
A001 Jason 男 英语 90
A001 Jason 男 数学 80
B002 Angle 女 语文 95
B002 Angle 女 英文 100
C003 William 男 数学 95想得到显示的结果如下: id name gender course score
A001 Jason 男 英语 90
数学 80
B002 Angle 女 语文 95
英文 100
C003 William 男 数学 95
解决方案 »
- SQL2008视频教程(中文版的)
- 有没有知道哪有sqlserver2000的jdbc驱动在哪下的朋友?
- 救命啊!sql server 2000 sp3,或sp4安装
- 数据分页中的数据类型转换问题
- 再次请教大虾一个问题
- 制作打包程序installshield express 5,如何将sql server2000的数据库文件.mdf .ldf拷贝到指定目录,并附加数据库。还情大家帮忙!感激不
- 新手!求一触发器的写法!!
- 请高高手帮小妹一个忙 !!!!
- 怎么样才能把一台机器上的数据库搬到另一台新装的SQL2000上????
- 500分求一个超级SQL查询难题!一个具有挑战性的难题!
- 字符串修改
- 过程运行结果产生一个新表
(
SELECT *,IID=ROW_NUMBER()(PARTITION BY id ORDER BY id ) FROM tb
)SELECT id=CASE WHEN IDD=1 THEN id ELSE '' END,
name=CASE WHEN IDD=1 THEN name ELSE '' END,
gender=CASE WHEN IDD=1 THEN gender ELSE '' END,course,score
FROM CTE
(
SELECT *,IID=ROW_NUMBER()(PARTITION BY id ORDER BY id ) FROM tb
)SELECT id=CASE WHEN IDD=1 THEN id ELSE '' END,
name=CASE WHEN IDD=1 THEN name ELSE '' END,
gender=CASE WHEN IDD=1 THEN gender ELSE '' END,
course,
score
FROM CTE
insert @a select 'A001' ,'Jason' ,'男' ,'英语', 90
union all select 'A001' ,'Jason' ,'男' ,'数学', 80
union all select 'B002' ,'Angle' ,'女' ,'语文', 95
union all select 'B002' ,'Angle' ,'女' ,'英文', 100
union all select 'C003' ,'William' ,'男' ,'数学', 95
SELECT CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id ) THEN id ELSE '' END id,
CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id) THEN id ELSE '' END name,
CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id) THEN id ELSE '' END gender,
course,score
FROM @a a --result
/*id name gender course score
-------------------- -------------------- -------------------- -------------------- -----------
A001 A001 A001 英语 90
数学 80
B002 B002 B002 语文 95
英文 100
C003 C003 C003 数学 95(所影响的行数为 5 行)
*/
insert @a select 'A001' ,'Jason' ,'男' ,'英语', 90
union all select 'A001' ,'Jason' ,'男' ,'数学', 80
union all select 'B002' ,'Angle' ,'女' ,'语文', 95
union all select 'B002' ,'Angle' ,'女' ,'英文', 100
union all select 'C003' ,'William' ,'男' ,'数学', 95
SELECT CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id ) THEN id ELSE '' END id,
CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id) THEN name ELSE '' END name,
CASE WHEN course=(SELECT TOP 1 course FROM @a WHERE id=a.id) THEN gender ELSE '' END gender,
course,score
FROM @a a --result
/*id name gender course score
-------------------- -------------------- -------------------- -------------------- -----------
A001 Jason 男 英语 90
数学 80
B002 Angle 女 语文 95
英文 100
C003 William 男 数学 95(所影响的行数为 5 行)*/