일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 치환
- 중복필드
- 청보리밭
- 네이버 지도API
- 일괄처리
- 비밀번호 유효성
- 고창
- WEB-INF 노출
- Java
- apache tomcat 연동 보안
- XSS 차단
- 배경이 가려진 레이어 팝업
- fckeditor
- CSS
- 스크롤 이동
- @tistory.com
- html5
- PADDING
- 2012 사진공모전
- 자바스크립트
- 자동 로봇 글등록
- 다음메일
- MARGIN
- column명비교
- addbatch
- 클라우드
- POST 전송
- 암호화&복호화
- 스팸글 차단
- 퀵메뉴
Archives
- Today
- Total
그곰의 생활
[PostgreSQL] 코멘트 또는 데이터 타입(사이즈)가 다른 동일 컬럼명 목록 조회 쿼리 본문
WITH tmp_column_dic
AS (
SELECT c.column_name AS "column"
, pgd.description AS "comment"
, c.udt_name AS "type"
, CASE
WHEN c.character_maximum_length IS NOT NULL THEN c.character_maximum_length
ELSE c.numeric_precision
END AS "size"
, c.table_name
FROM pg_statio_all_tables st
JOIN pg_description pgd
ON pgd.objoid = st.relid
JOIN information_schema.columns c
ON pgd.objsubid = c.ordinal_position::integer AND c.table_schema::name = st.schemaname AND c.table_name::name = st.relname
)
, tmp_list
AS
(
SELECT trim(split_part(k, '|&|', 1)) AS col
, split_part(k, '|&|', 2) AS cmt
, split_part(k, '|&|', 3) AS typ
, split_part(k, '|&|', 4) AS sz
FROM (
SELECT b."column", b."comment", b."type", b."size" AS sz
, rpad(b.column, 60, ' ') || '|&|' || rpad(b.COMMENT, 90, ' ') || '|&|' || rpad(b.TYPE, 15, ' ') || '|&|' || lpad(COALESCE(b.SIZE, 0)::varchar, 6, '0') AS k
FROM tmp_column_dic b
) x
GROUP BY k
)
SELECT yy."column"
, yy."comment"
, yy."type"
, yy."size"
, array_to_string(array_agg(yy."table_name"), ',') AS table_names
FROM (
SELECT y.col
, count(*) AS cnt
FROM tmp_list y
GROUP BY y.col
HAVING count(*) > 1
) xx
JOIN tmp_column_dic yy
ON xx.col = yy."column"
GROUP BY yy."column"
, yy."comment"
, yy."type"
, yy."size"
'Server-side > SQL' 카테고리의 다른 글
[MySQL] 중복제거 쿼리 (2) | 2011.11.07 |
---|---|
[MSSQL] [스크랩] 데이터 암호와&복호화 (0) | 2011.09.27 |
[Oracle] Set Operator(여러 select를 한번에 출력) (0) | 2011.06.29 |
Comments