首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求判断表字据号为某值的数据行除自增id列外是否全部重复的语句

2013-03-13 
求判断表单据号为某值的数据行除自增id列外是否全部重复的语句有类似如下表(简化了一下),如何判断djhXXX

求判断表单据号为某值的数据行除自增id列外是否全部重复的语句
有类似如下表(简化了一下),如何判断djh='XXXXX' 的数据,在表中c1,c2,c3,c4有重复,且每一行都有重复。也是就djh='XXXXX' 的数据 多插入了一次的效果,如何快速检索出来。因为表中数据量比较大。djh列有索引。测试数据中 djh='A02050000002'的判断是不完全重复,A00010000001 判断为重复


CREATE TABLE [dbo].[t_csb1](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[djh] [varchar](20) NULL,
[c1] [varchar](50) NULL,
[c2] [varchar](50) NULL,
[c3] [varchar](50) NULL,
[c4] [varchar](50) NULL,
 CONSTRAINT [PK_t_csb1] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
go
--测试数据
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','12040000600','静脉输液','0','组')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','4011000402','米非司酮','25mg*6','片')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','40110029','施慧达','1h','盒')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','11020000100','普通门诊诊查费','0','次')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','40110029','施慧达','1h','盒')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','4011000402','米非司酮','25mg*6','片')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011011402','氯化钠','100ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011013304','纳洛酮注射液','1mg*5z','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110114','氯化钠','250ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110075','奥美拉唑针','20mg','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011014003','10%葡萄糖','250ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110174','维生素C针','0.5g*10z','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','11020000300','急诊诊查费','0','次')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','70009663','门诊静脉输液费(三)(含器械 床位 观察费用)','0','次')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','12040000600','静脉输液','0','组')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','4011000402','米非司酮','25mg*6','片')


insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','40110029','施慧达','1h','盒')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','11020000100','普通门诊诊查费','0','次')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','40110029','施慧达','1h','盒')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A00010000001','4011000402','米非司酮','25mg*6','片')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011011402','氯化钠','100ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011013304','纳洛酮注射液','1mg*5z','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110114','氯化钠','250ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110075','奥美拉唑针','20mg','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','4011014003','10%葡萄糖','250ml','瓶')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','40110174','维生素C针','0.5g*10z','支')
insert   t_csb1   (djh,c1,c2,c3,c4)      values   (   'A02050000002','11020000300','急诊诊查费','0','次')

 
[解决办法]
select distinct djh from tb group by djh,c1,c2,c3,c4 having count(1)>1
[解决办法]
select distinct djh from tb a
where not exists (
select 1 from tb b
where b.djh = a.djh
and b.id <> a.id
and b.c1= a.c1
and b.c2= a.c2
and b.c3= a.c3
and b.c4= a.c4
)

热点排行
Bad Request.