国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

一個(gè)有關(guān)DISTINCT的問題解答

2024-07-21 02:31:01
字體:
供稿:網(wǎng)友
經(jīng)常會(huì)有朋友問到類似于這樣的問題,
表中的數(shù)據(jù)如下
ID   AA   BB    
1    123   456
1    4535 54
1    60     6564
1    60     656
2    50     664
2    60     6
3    89     89
4    40     4242
希望得到的結(jié)果是
ID   AA   BB
1    123   456
2    50     664
3    89     89
4    40     4242
當(dāng)然了,環(huán)境是SQL Server
解答及分析如下:
1, 不少朋友希望用distinct就解決問題,但不可能,disctinct將重復(fù)的記錄忽略,
但它忽略的是完全一致的重復(fù)記錄,而不是其中某個(gè)字段重復(fù)的記錄,所以也只有
這樣的語法
select distinct ID,AA,BB from tName
其它諸如select distinct(ID),AA,BB from tName 或
select ID,distinct AA,BB的寫法都是無效的
2, 使用group by和聚合函數(shù)
select ID,MAX(AA) AS AA,MAX(BB) AS BB from tName group by ID
可以得到如下結(jié)果
ID   AA   BB
1    4535 6564
2    60   664
3    89   89
4    40   4242
ID是唯一了,但不一定后面的字段是同一條記錄的
3, 使用臨時(shí)表
select IDENTITY(INT,1,1) as TID,ID,AA,BB into #Tmp from tName
select t1.ID,t1.AA,t1.BB from #Tmp t1 where t1.TID in
(select min(T2.TID) from #Tmp t2 group by t2.ID)
這樣可以得到符合要求的結(jié)果
不過用了兩個(gè)T-SQL語句,
而且如果是大數(shù)據(jù)量的話,性能問題將很突出
到目前為止,我還沒找到用一個(gè)T-SQL語句實(shí)現(xiàn)同樣功能的方法,
如果誰有,希望補(bǔ)充

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岢岚县| 区。| 临武县| 辉南县| 莆田市| 夏津县| 彭山县| 龙州县| 灵璧县| 龙山县| 浠水县| 朝阳区| 绥滨县| 新干县| 涿鹿县| 贞丰县| 页游| 隆化县| 黑河市| 独山县| 察雅县| 鹰潭市| 吴江市| 万州区| 小金县| 偏关县| 彰化市| 孟州市| 洛隆县| 五华县| 舞阳县| 沂南县| 嘉峪关市| 车致| 青铜峡市| 瑞昌市| 巴里| 丰顺县| 寿阳县| 吴江市| 堆龙德庆县|