當前位置:
首頁 >
常用sql收藏
發布時間:2024/9/5
41
豆豆
新增字段IsCheckInvoice
Alter table T_LegalUnit add IsCheckInvoice bitUPDATE T_LegalUniT SET IsCheckInvoice=1 WHERE LegalUnitID='000010'SELECT *FROM T_LegalUnit WHERE IsCheckInvoice=11.查詢表中重復字段
SELECT MOBILE_PHONE FROM T_Saas_Device GROUP BY MOBILE_PHONE,CompanyGUID HAVING COUNT(*)>1重復數據,保留uid最小的數據
create database Test use Testif OBJECT_ID('users','U') is not null drop table users go create table users(uid int identity(1,1) primary key ,uname varchar(50) not null,uemail varchar(50) not null,sex char(2) not null ,createtime datetime not null )insert into users (uname,uemail,sex,createtime)values('張筱雨','mi@163.com','女',getdate()); insert into users (uname,uemail,sex,createtime)values('王旭','wangxu@163.com','男',getdate()); insert into users (uname,uemail,sex,createtime)values('張曉','zhangxiao@163.com','女',getdate()); insert into users (uname,uemail,sex,createtime)values('劉小雨','xiaoyu@163.com','女',getdate()); insert into users (uname,uemail,sex,createtime)values('李青','liqing@163.com','男',getdate()); insert into users (uname,uemail,sex,createtime)values('肖珂','xiaoke@163.com','女',getdate()); insert into users (uname,uemail,sex,createtime)values('張西','zhangxi@163.com','男',getdate()); insert into users (uname,uemail,sex,createtime)values('程旭','chengxu@163.com','男',getdate());insert into users (uname,uemail,sex,createtime)values('小明','wang@163.com','男',getdate()); insert into users (uname,uemail,sex,createtime)values('小明','wang@163.com','男',getdate());select *from users第一種寫法
delete u from users u where exists(select *from (select uname from users group by uname having count(uname)>1)as s where u.uname=s.uname) and u.uid not in (select min(uid) from users group by uname )第二種寫法
delete from users where uid not in( select uid from users a where not exists ( select 1 from users b where a.uname = b.uname and b.uid < a.uid ))查詢重復的用戶名
select *from users where uname in(select uname from users group by uname having count(*)>1)查詢重復的用戶名次數和記錄
select count(*)as 重復次數,uname from users group by uname having count(*)>1查找表中多余的重復記錄,重復記錄是根據單個字段(uname)來判斷
select *from users where uname in(select uname from users group by uname having count(uname)>1)查找表中多余的重復記錄(多個字段)
select *from users u where exists (select *from (select uname,uemail from users group by uname,uemail having count(*)>1)as s where u.uname=s.uname and u.uemail=s.uemail)查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
select *from users u where exists(select *from (select uname,uemail from users group by uname,uemail having count(*)>1)as s where u.uname=s.uname and u.uemail=s.uemail) and u.uid not in(select min(uid)from users group by uname,uemail)兩條相同的記錄 ,查詢只有uname相同的數據
select *from users where uname in(select uname from users group by uname having count(uname)>1)兩條相同的記錄 ,查詢只有uname,uemail相同的數據
select *from users u where exists(select *from (select uname,uemail from users group by uname,uemail having count(*)>1 )as s where u.uname=s.uname and u.uemail=s.uemail)order by uname desc刪除表中多余的重復記錄,重復記錄是根據單個字段(uname)來判斷,只留有uid最小的記錄
delete u from users u where exists (select *from (select uname from users group by uname having count(*)>1)as s where u.uname=s.uname ) and u.uid not in(select min(uid)from users group by uname )delete from users where uid not in( select uid from users a where not exists ( select 1 from users b where a.uname = b.uname and b.uid < a.uid ));刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
delete u from users u where exists(select *from (select uname,uemail from users group by uname,uemail having count(*)>1)as s where u.uname=s.uname and u.uemail=s.uemail)and u.uid not in(select min(uid)from users group by uname,uemail)轉載于:https://www.cnblogs.com/imtudou/p/11251910.html
總結
- 上一篇: SQL where 1=1 的详细解
- 下一篇: 删除所有的视图,存储过程