사용하지 않는 컬럼을 찾기 위한 컬럼별 널 카운트 0 5 1,617

by 김수진 [2010.04.09 10:29:40]



컬럼수가 많은 테이블에서 사용하지 않는 컬럼을 찾을려고 하는데

한번에 컬럼명과 그 컬럼의 null 카운트가 가능할가요?

가능하다면 답변 부탁드릴게요~
by proud [2010.04.09 10:34:20]
대상 테이블을 지정하는 것인가요? 아니면 오라클 내에 존재하는 모든 테이블인가요?

by 김수진 [2010.04.09 10:37:19]
테이블 하나만 지정해서 확인하고 싶습니다.

by 마농 [2010.04.09 11:12:46]
이쿼리의 결과로 나오는 Sql문장을 실행해서 카운트 0인건을 보시면 되겠네요.

SELECT 'SELECT ''EMP'' table_name' FROM dual
UNION ALL
SELECT * FROM
(
SELECT ' , COUNT(' || column_name || ') ' || column_name
FROM user_tab_columns
WHERE table_name = 'EMP'
ORDER BY column_id
)
UNION ALL
SELECT ' FROM emp;' FROM dual
;

by 김수진 [2010.04.09 11:24:50]
감사합니닷~

by proud [2010.04.09 13:02:54]
마농님 쿼리에서 조금 수정하였습니다.

마농님 쿼리의 결과는 그 컬럼 전체가 널만 존재하는 것을 찾을수 있구요.

컬럼별 널값 갯수는..

SELECT 'SELECT ''EMP'' table_name' FROM dual
UNION ALL
SELECT * FROM
(
SELECT ' , COUNT(case when ' || column_name || ' is null then 1 end) ' || column_name
FROM user_tab_columns
WHERE table_name = 'EMP'
ORDER BY column_id
)
UNION ALL
SELECT ' FROM EMP;' FROM dual
;

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입