database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6490 게시물 읽기
No. 6490
[질문]select 에서 같은 컬럼이름 일 경우
작성자
레도
작성일
2005-12-26 14:57
조회수
3,014

게시판에서 내용을 찾지못해 질문드립니다.

 

아무 의미없지만 다음과 같은 질의가 있다고 할때.

select a.id, b.id from user a, user b;

 

MySql 에서는 다음과 같이 해당 값을 가져왔습니다.

rs.getString("a.id");

rs.getString("b.id");

 

postgresql 에서는 위와같이 할경우 에러가 나더군요.

그냥

rs.getString("id"); 라고 해야 가져오던데요.

여기서 질문입니다.

질의에 a.id as aid, b.id as bid 라고 하지 않고 그냥 위처럼 가져오기를 할때

두번째 b.id를 가져오려면

rs.getString()을 어떻게 써야 컬럼 이름이 같은 두번째 결과를 가져올까요?

rs.getString(1) 처럼 숫자로 말고 컬럼이름을 명시해서 가져올경우에요.

 

GUI 클라이언트에서 쿼리를 해보니 컬럼이름이

id, id_1 이런식으로 표현되던데요. 혹시나해서

rs.getString("id");

rs.getString("id_1") 이라고 해보니 에러가 나더군요.....

 

답변 부탁드립니다.

이 글에 대한 댓글이 총 3건 있습니다.

PostgreSQL에서는 a.id, b.id 일 경우에, clinet로 넘겨주는 column 이름은 점(.) 뒤에 것만 넘겨줍니다.

 

이놈을 client 드라이버가 id_1 로 바꾸어서 응용프로그램으로 넘겨주나 봅니다. getString 쓰는 것으로 보아, jdbc 같은데,

글쎄 방법이 있을까싶네요. getString(getColumnName(1)) 한다고 해도 답이 안 나올듯싶습니다. 안해봐서 모르겠지만. 심심하시면, ResultSetMetaData 인스턴스를 하나 만들어서, 한번 해보세요. 아마 id_1을 넘기고 그런 column이 없다고 오류를 낼듯하네요.

 

대부분의 범용 sql 쪽에서는 당연히, PostgreSQL 의 column 이름방식을 사용합니다.

 

같은 column 이름을 출력할 때는 반드시 column alias 로 이름을 바꾸는 버릇을 드려놓는 것이 좋을 듯합니다.

 

김상기(ioseph)님이 2005-12-26 16:03에 작성한 댓글입니다.

네, 답변 감사합니다.

고칠 부분이 많이 늘어나겠군요...ㅠ.ㅠ

레도님이 2005-12-26 20:40에 작성한 댓글입니다. Edit

음... 이런 경우가 있을 수 있군요. 전 저런 상황에 애초에 alias를 쓰기 때문에 문제가 되지 않았었는데... 궁금하네요. 어떤게 결과가 나올지...

박성철(gyumee)님이 2006-01-05 02:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6495레코드 셋에서 serial type의 필드를 읽는데 에러가.... [1]
조우현
2006-01-03
2390
6493tomcat 4.1.31 + postgresql 8.1 + jdbc + JSP 한글깨짐 [1]
김성식
2005-12-30
5269
6491치명적오류 [1]
이경호
2005-12-28
3764
6490[질문]select 에서 같은 컬럼이름 일 경우 [3]
레도
2005-12-26
3014
6489두번의 쿼리를 한번에 할 수 있는 방법이 있을까요? [2]
최현덕
2005-12-24
3007
6488쿼리문 예상치 않은 결과가 나오네요. -ㅁ-;; [3]
KSH
2005-12-21
2836
6487DB 설계관련 꼭좀 알려주세요 [1]
김지호
2005-12-20
3106
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다