1.표 의 한 필드 에서 중복 되 는 열 을 어떻게 삭제 합 니까?예 표를 들 어[table 1]id name 1 aa 2 bb 3 cc 1 aa 2 bb 3 cc 마지막 시 계 는 이런 id 라 고 생각 합 니 다. name 1 aa 2 bb 3 cc 대답:임시 표\#t 에 기록 을 저장 하고 중복 되 는 기록 은 하나만 저장 한 다음 임시 표\#t 의 기록 을 원래 표 에 다시 저장 합 니 다."select"에 주의 하 십시오. distinct id,class,name"은 필요 한 모든 필드 를 포함 해 야 합 니 다.그렇지 않 으 면 일부 필드 가 삭 제 됩 니 다.검색 관리자 에서 다음 코드 를 실행 합 니 다:SELECT DISTINCT id,, name INTO #t FROM table1 DELETE table1 INSERT INTO table1 SELECT * FROM #t 2.VB 도 할 줄 알 고 PHP 도 할 줄 아 는 사람 을 찾아내 는 것 은 다음 과 같다:ID 종업원 기능. 1 1 VB 2 1 PHP 3 1 ASP 4 2 PHP 5 3 ASP 6 4 VB 7 4 ASP 이 표 에서 VB 도 할 줄 알 고 PHP 도 할 줄 아 는 사람 을 찾 으 려 면 SQL 을 어떻게 써 야 합 니까? 정 답:SELECT 종업원 FROM [Table] WHERE 종업원 IN(SELECT 종업원 FROM [Table] WHERE 스 킬='VB' ) AND 스 킬='PHP' 3.데이터베이스 통합 문제 access 의 두 표,두 표 의 내용 을 통합 시 키 려 고 합 니 다. 표[a]구 조 는 다음 과 같다.[id] 번호 자동 번호 [name] 명칭. 텍스트 [price] 가격. 숫자. [guige] 규격. 텍스트 [changjia] 생산 업 체 텍스트 [baozhuang] 포장 하 다. 텍스트 [danwei] 단위 텍스트 모두 900 개의 기록 이 있 습 니 다.id 와 name 필드 를 제외 하고 모두 빈 표[b]구 조 는 다음 과 같 습 니 다.[id] 번호 자동 번호 [name] 명칭. 텍스트 [price] 가격. 숫자. [changjia] 생산 업 체 텍스트 [danwei] 단위 텍스트 [xingzhi] 성질 텍스트 모두 800 개의 기록 이 있 습 니 다.id 와 name 필드 를 제외 하고 표[a]보다 몇 개의 필드 가 적 지만[xingzhi]의 문자 가 더 많 습 니 다.다른 것 은 모두 비어 있 습 니 다.현재 새 표[c]를 만 들 고 싶 습 니 다.구 조 는 다음 과 같 습 니 다.그리고 내용 은 두 표 의 내용 의 합 입 니 다.[id] 번호 자동 번호 [name] 명칭. 텍스트 [price] 가격. 숫자. [guige] 규격. 텍스트 [changjia] 생산 업 체 텍스트 [baozhuang] 포장 하 다. 텍스트 [danwei] 단위 텍스트 [xingzhi] 성질 텍스트 sql 문 구 를 사용 하 셔 도 됩 니 다.손 으로 조작 하 셔 도 좋 습 니 다.xml 도 좋 습 니 다.어떻게 하 든 상관 하지 마 세 요.어떻게 실현 하 세 요.형 들 이 답답 해 하 시 겠 습 니 다.정말 800 개의 기록 을 다시 입력 하 라 고 하 시 면 끊 겠 습 니 다.이렇게 insert into c(id,name,.....) select id,name,..... from a insert into c(id,name,.....) select max(id)+1,name,..... from b 2.정정:검색 분석 기 에서 직접 실행 하면 insert into c(name,.....) select name,..... from a insert into c(name,.....) select name,..... from b 3.유 니 온 방법 으로 insert into [c] ([id] ,자동 번호 [id],번호,자동 번호 from [a] union select [id],번호,자동 번호 from [b] 4.asp 의 해결 방법<% '순환 검출 a 표 세트 rs = Server.CreateObect("ADODB.RECORDSET") rs.open "select * from a order by id",conn,1,1 Do while not rs.eof Call actAdd(rs("name")) 'b 표 에 내용 을 추가 하 는 함 수 를 호출 합 니 다!rs.MoveNext Loop rs.Close Set rs = Nothing Sub actAdd(txt) Dim ts, sql sql = "insert into b(name) values('"& txt &"')" Set ts = Conn.Execute(sql) ts.Close Set ts = Nothing end Sub %> 5.asp 의 해결 방법<%dim arr_temp1,arr_temp2,arr_data set rs=conn.execute("select id,name,price,guige,changjia,baozhuang,danwei from a") arr_temp1=rs.getrows rs.close set rs=nothing set rs=conn.execute("select id,name,price,guige,changjia,danwei,xingzhi from b") arr_temp2=rs.getrows rs.close set rs=nothing rem redim 처리 시작 arr_data(ubound(arr_temp1,2)+ubound(arr_temp2,2),7) rem 두 배열 의 내용 을 복사 해서 이 부분 에 두 개의 순환 을 한 다음 에 데이터베이스 에 저장 합 니 다%> 마지막 으로 전형 적 인 SQL 문 구 를 돌 립 니 다.1.개구리 추천:정교 한 SQL 문 구 는 복사 표(구조 만 복사 하고 소스 표 이름:a)입 니 다. 새 테이블 이름:b)SQL: select * into b from a where 1<>1 설명:카피 테이블(카피 데이터,원본 테이블 이름:a 대상 표 이름:b)SQL: insert into b(a, b, c) select d,e,f from b; 설명:글,제출 자,마지막 답장 시간 표시 SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 설명:외부 연결 조회(표 명 1:a) 표 명 2:b)SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 설명:일정 을 5 분 앞 당 겨 SQL 에 알 리 기: select * from 스케줄 where datediff('minute',f 시작 시간,getdate())>5 설명:두 장의 관련 표,메 인 표 에 없 는 정 보 를 삭제 합 니 다 SQL: delete from info where not exists ( select * from infobz where info.infid=infobz.infid ) 설명:--SQL: SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE FROM TABLE1, (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X, (SELECT NUM, UPD_DATE, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y, WHERE X.NUM = Y.NUM (+) AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B WHERE A.NUM = B.NUM 설명:--SQL: select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 학과 명='&strdepartment name&' and 전문 명칭='&strprofessionname&' order by 성별 설명:데이터베이스 에서 1 년 간 의 각 단위 전화 요금 통계(전화 요금 정액 축전 화학비료 명세서 두 표 출처)SQL: SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV, SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration FROM TELFEESTAND a, TELFEE b WHERE a.tel = b.telfax) a GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') 설명:4 표 연결 검사 문제:SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 설명:표 에서 가장 작은 미사 용 ID 번호 SQL:SELECT 받 기 (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a) 2.중복 데이터 삭제 1.메 인 키 가 있 는 경우 a.유일한 필드 id(유일한 메 인 키)delete table where id not in ( select max(id) from table group by col1,col2,col3... ) group by 자구 뒤꿈치 의 필드 는 중복 되 는 조건 을 판단 하 는 데 사 용 됩 니 다.예 를 들 어 col 1 만 있 으 면 col 1 필드 의 내용 이 같 으 면 기록 이 같다 는 것 을 의미 합 니 다.b.연합 키 가설 col1+','+col2+','...col 5 연합 키 select * from table where col1+','+col2+','...col5 in ( select max(col1+','+col2+','...col5) from table where having count(*)>1 group by col1,col2,col3,col4 ) group by 자구 뒤꿈치 의 필드 는 중복 되 는 조건 을 판단 하 는 데 사 용 됩 니 다.예 를 들 어 col 1 만 있 으 면 col 1 필드 의 내용 이 같 으 면 기록 이 같다 는 것 을 의미 합 니 다.c:모든 필드 판단 select * into #aa from table group by id1,id2,.... delete table insert into table select * from #aa 2.메 인 키 가 없 는 경우 a:임시 표 로 select 실현 identity(int,1,1) as id,* into #temp from ta delete #temp where id not in ( select max(id) from # group by col1,col2,col3... ) delete table ta inset into ta(...) select ..... from #temp b:표 구조 변경(유일한 필드 추가)으로 alter 구현 table 시계. add newfield int identity(1,1) delete 어디 newfield not in ( select min(newfield) from 시계. group by new field 를 제외 한 모든 필드)alter table 시계. drop column newfield