日期:2014-05-18 浏览次数:20646 次
--A表中有数据如下: --主键码 题名 书号 出版社 -- 1 傲慢与偏见 72042006 东北出版社 -- 2 例慢与偏见 72042006 东北出版社 -- 3 美国企业500家 78100698 西北出版社 -- 4 美国企业500家 78100698 西北出版社 if OBJECT_ID('A表')is not null drop table A表 go create table A表(主键码 int, 题名 varchar(20),书号 varchar(20), 出版社 varchar(20)) insert into A表 values(1, '傲慢与偏见' ,'72042006', '东北出版社') insert into A表 values(2, '例慢与偏见' ,'72042006' ,'东北出版社') insert into A表 values(3, '美国企业500家' ,'78100698', '西北出版社') insert into A表 values(4, '美国企业500家', '78100698', '西北出版社') --要求处理后的结果: --A表中有数据如下: -- 主键码 题名 书号 出版社 -- 1 傲慢与偏见 72042006 东北出版社 -- 3 美国企业500家 78100698 西北出版社 ;with ct as (select * from A表) select * from ct c where 主键码=(select min(主键码) from ct where c.书号=书号) -- (1 行受影响) --主键码 题名 书号 出版社 ------------- -------------------- -------------------- -------------------- --1 傲慢与偏见 72042006 东北出版社 --3 美国企业500家 78100698 西北出版社 --(2 行受影响) --B表中有数据如下: --主键码 子键码 条码号 -- 1 1 L044093 -- 1 2 L041392 -- 2 3 L041399 -- 3 4 0008303 -- 3 4 0008302 -- 4 5 0008300 -- 4 5 0008299 if OBJECT_ID('B表')is not null drop table B表 go create table B表(主键码 int,子键码 int, 条码号 varchar(20)) insert into B表 values(1, 1 ,'L044093') insert into B表 values(1, 2 ,'L041392') insert into B表 values(2, 3 ,'L041399') insert into B表 values(3 ,4 ,'0008303') insert into B表 values(3, 4 ,'0008302') insert into B表 values(4, 5, '0008300') insert into B表 values(4 ,5, '0008299') --B表中有数据如下: --主键码 子键码 条码号 -- 1 1 L044093 -- 1 2 L041392 -- 1 3 L041399 -- 3 4 0008303 -- 3 4 0008302 -- 3 5 0008300 -- 3 5 0008299 select (select min(主键码) from B表 where substring(条码号,1,3)=substring(b.条码号,1,3) ),子键码,条码号 from B表 b (1 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) 主键码 题名 书号 出版社 ----------- -------------------- -------------------- -------------------- 1 傲慢与偏见 72042006 东北出版社 3 美国企业500家 78100698 西北出版社 (2 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) (1 行受影响) 子键码 条码号 ----------- ----------- -------------------- 1 1 L044093 1 2 L041392 1 3 L041399 3 4 0008303 3 4 0008302 3 5 0008300 3 5 0008299 (7 行受影响)