国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 通州区| 长丰县| 六盘水市| 义乌市| 日照市| 柯坪县| 财经| 平度市| 安远县| 钦州市| 宜都市| 和顺县| 奇台县| 和政县| 察哈| 荣昌县| 南平市| 凌海市| 龙江县| 茂名市| 武陟县| 抚顺市| 灵宝市| 阿拉善左旗| 资溪县| 石林| 定日县| 章丘市| 陇川县| 孙吴县| 霍山县| 昌都县| 伊金霍洛旗| 长丰县| 镇江市| 时尚| 澎湖县| 鞍山市| 广河县| 光山县| 冕宁县|