pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

僅在sql server中的條件下刪除重復(fù)記錄

Delete duplicate records only on condition in sql server(僅在sql server中的條件下刪除重復(fù)記錄)
本文介紹了僅在sql server中的條件下刪除重復(fù)記錄的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我想刪除重復(fù)項(xiàng),例如我想刪除這一行Test2, 321, 0",因?yàn)橛兄貜?fù)項(xiàng),但在第 1 行和第 2 行中,我只想刪除第 2 行,因?yàn)轭愋?id 高于當(dāng)前在第一行重復(fù).

這是我的桌子

<前>ID、名稱、記錄編號(hào)、類型--------------------------1, 測(cè)試, 123, 02, 測(cè)試, 123, 13, 測(cè)試 2, 321, 04、測(cè)試2、321、0

我可以使用此查詢刪除第 4 行中的重復(fù)項(xiàng).但我似乎無法弄清楚如何刪除第 2 行,因?yàn)榈?1 行相同但類型編號(hào)較低.如果類型編號(hào)為 2,則獲勝,您必須刪除具有相同名稱和記錄編號(hào)的 0 和 1 類型編號(hào)的任何重復(fù)項(xiàng).

WITH dup2 as (選擇名稱, 記錄號(hào), 鍵入 ROW_NUMBER() OVER(PARTITION BY Name, RecordNum, Type ORDER BY ID ASC) AS NumOfDups從 MyTbale)從 dup2 中刪除 NumOfDups >1

解決方案

所以基本上你只想為每個(gè) Name, RecordNum 組保留一條記錄.如果Type相同只保留最低的ID,如果Type不同保留最低的類型:

帶有 dup2 AS(選擇姓名,記錄數(shù),NumOfDups = ROW_NUMBER()OVER(按名稱分區(qū),RecordNumORDER BY CASE WHEN Type=2 THEN 0 ELSE 1 END, Type, Id)從 MyTbale)刪除從 dup2WHERE NumOfDups >1

SQL-Fiddle 演示

編輯根據(jù)評(píng)論:假設(shè)當(dāng) type = 2 時(shí),我想刪除類型為 0 或 1 的其他匹配記錄,因此這里有兩個(gè)獲勝."

I want to delete duplicates for example I want to delete this row "Test2, 321, 0" because there is a duplicate, but in row 1 and 2 I only want to delete row two because the type id is higher then the current duplicate in row one.

This is my table

ID, Name, RecordNum, Type
--------------------------
1, Test, 123, 0
2, Test, 123, 1
3, Test2, 321, 0
4, Test2, 321, 0

I can delete duplicate in row 4 using this query. but I cannot seem to figure out how to delete row 2 because row 1 is the same but type number is lower. and if the type number is 2 it wins and you have to delete any duplicates with 0 and 1 type numbers that have the same name and recordnum.

WITH dup2 as ( 
  SELECT Name
       , RecordNum
       , Type ROW_NUMBER() OVER(PARTITION BY Name, RecordNum, Type ORDER BY ID ASC) AS NumOfDups 
    FROM MyTbale) 
  delete FROM dup2 WHERE NumOfDups > 1

解決方案

So basically you want to keep only one record for each Name, RecordNum group. If the Type is the same keep only the lowest ID, if the Type is different keep the lowest type:

WITH dup2 AS 
( 
         SELECT  NAME, 
                 RecordNum, 
                 NumOfDups = ROW_NUMBER()OVER(
                                 PARTITION BY NAME, RecordNum 
                                 ORDER BY CASE WHEN Type=2 THEN 0 ELSE 1 END, Type, Id)
         FROM    MyTbale) 
DELETE 
FROM   dup2 
WHERE  NumOfDups > 1

SQL-Fiddle Demo

Edited according to comment: "Let say when the type = 2 then I want to delete the other matching records that have a zero or one for type, so two wins here."

這篇關(guān)于僅在sql server中的條件下刪除重復(fù)記錄的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Modify Existing decimal places info(修改現(xiàn)有小數(shù)位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關(guān)名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號(hào)或管道運(yùn)算符字符串中刪除重復(fù)項(xiàng))
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關(guān)系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 挨踢网-大家的导航! | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 快速卷帘门_硬质快速卷帘门-西朗门业 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 重庆轻质隔墙板-重庆安吉升科技有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 鄂泉泵业官网|(杭州、上海、全国畅销)大流量防汛排涝泵-LW立式排污泵 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 换链神器官网-友情链接交换、购买交易于一体的站长平台 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 科普仪器菏泽市教育教学仪器总厂| 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 上海赞永| 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 |