之所以要用別名,是因?yàn)閐elete的where條件中需要用到子查詢(xún)寫(xiě)一些條件,舉例:
利用自連接刪除表中重復(fù)的數(shù)據(jù):
create TABLE [dbo].[products1]
(
[rowid] [int] primary key IDENTITY(1,1) NOT NULL,
[name] [nchar](10) NULL,
[price] [int] NULL
)
insert INTO Products VALUES('蘋(píng)果', 50);
insert INTO Products VALUES('橘子', 100);
insert INTO Products VALUES('橘子', 100);
insert INTO Products VALUES('橘子', 100);
insert INTO Products VALUES('香蕉', 80);
insert INTO Products VALUES('香蕉', 80);
delete products from products as p1
where p1.rowid<
(
select MAX(p2.rowid) from products p2
where p1.name=p2.name and p1.price=p2.price
)
--結(jié)果:
-- rowid name price
-- 1 蘋(píng)果 50
-- 4 橘子 100
-- 6 香蕉 80
該評(píng)論在 2022/12/17 11:05:12 編輯過(guò)