首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

生手分不多,求帮忙:值相同的列A,只保留一行,其余列A 用null表示

2013-09-17 
新手分不多,求帮忙:值相同的列A,只保留一行,其余列A 用null表示目前表查出来是这样的:NAMEAGESCORE张三231

新手分不多,求帮忙:值相同的列A,只保留一行,其余列A 用null表示
目前表查出来是这样的:
NAME  AGE   SCORE
张三  23    100
张三  23     99
张三  23     91
王五  24     55
赵六  23     null   

需要这样的结果:
NAME   AGE   SCORE
张三   23    100
NULL   23     99
NULL   23     91
王五   24     55
赵六   23     NULL
[解决办法]


CREATE TABLE #ta (NAME VARCHAR(8),AGE INT ,SCORE INT,ID INT IDENTITY(1,1))
go
INSERT INTO #ta (NAME,AGE,SCORE)
SELECT '张三',23,100 UNION ALL
SELECT '张三',23,99 UNION ALL
SELECT '张三',23,91 UNION ALL
SELECT '王五',24,55 UNION ALL
SELECT '赵六',23,null   
go

--查詢
SELECT 
CASE 
WHEN EXISTS(SELECT 1 FROM #ta WHERE NAME=a.NAME AND ID<a.ID) THEN NULL 
ELSE NAME 
END NAME,AGE,SCORE
FROM #ta a
ORDER BY id

热点排行