1. 특정 컬럼의 데이터에서 첫번째 자리의 값이 숫자가 아닌 경우를 조회

<pre class="brush:sql">
select  컬럼, ascii(substr(컬럼,1,1)) from 테이블
where ascii(substr(컬럼,1,1)) not in ('48','49','50','51','52','53','54','55','56','57');
</pre>

컬럼A
--------
C20A21S
D52A25S
...



2. 테이블의 특정 컬럼 삭제

 
alter  table  테이블명 drop  column(컬럼명);



3. 테이블의 특정 컬럼명을 컬럼1 에서  컬럼2 로 수정
 
alter  table  테이블명  rename  column  컬럼1  TO  컬럼2;



4. 특정 컬럼의 값에서 enter 값을 제거
 
update  테이블명  set  컬럼명 = replace(컬럼명,chr(13)||chr(10),'');



5. 특정 테이블에 중복된 레코드가 있어 하나만 남겨두고 그외 중복 레코드를 삭제해야 하는 경우   

 
방법 1) 중복된 레코드중에 ROWID가 큰 값을 제거. 즉 최초 입력된 데이터를 살릴 경우

DELETE FROM emp a
WHERE rowid > (SELECT MIN(ROWID)
                          FROM emp b
                          WHERE b.empno = a.empno);
 
 
방법 2) 중복된 레코드중에 나중에 입력된 데이터를 살릴경우

DELETE FROM emp a
WHERE ROWID < (SELECT MAX(ROWID)
                            FROM emp b
                            WHERE a.empno = b.empno);
 
 
방법 3) 임시테이블 생성후 테이블명 변경

CREATE TABLE emp2 AS SELECT distinct empno FROM emp;
DROP TABLE emp;
 
RENAME emp2 TO emp;


+ Recent posts