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
운영게시판
최근게시물
Sybase Q&A 3923 게시물 읽기
No. 3923
쿼리문좀 보아 주세용
작성자
sybaser
작성일
2009-10-14 10:44ⓒ
2009-10-14 10:56ⓜ
조회수
6,818

select * from ADB1..TAB1 a

where a.CustNo = (select b.CustNo from ADB1..TAB2 b)


:ADB1 이라는 TAB1,TAB2 테이블에 대해서 CustNo 가 같은 데이터를

 추출 하려고 합니다.

 꼭 위에 처럼 where 조건 다음인서브쿼리로만 해야만 되구요(select * from ADB1..TAB1 a,ADB1..TAB2 b where a.CustNo = b.CustNo가 아닌)

 근데 위에 처럼 서브쿼리로 쓸때

Subquery returned more than 1 value.  This is illegal when the subquery follows =, !=, <, <= , >, >=, or when the subquery is used as an expression.

의 에러가 나네용

서브쿼리 구문에 문제가 있는 걸까요


그리고 한가지 더 질문 드리자면

select * from ADB1..TAB1 a,ADB1..TAB2 b

where b.Coldate <= '20091014'의 쿼리를 

서브쿼리로 한다면 어떻게 해야 될지요.

예를 든다면 select * from ADB1..TAB1 a where (select * from ADB1..TAB2 where b.Coldate <= '20091014')

이런 식으로요

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

서브쿼리의 에러 메시지에서 보면 알 수 있듯이 = 연산자의 서브쿼리는 그 결과가 1건이내여야 합니다.

(select b.CustNo from ABD1..TAB2 b)의 결과건수가 1건이 넘기때문에 =로 하면 안되는 것이죠.

= 연산자 대신 이런경우에는 in을 사용하면 됩니다.


물론, 조인문의 형태로 쿼리를 사용할 수 있습니다.

조인을 할 경우에는 select 리스트를 어느 테이블의 컬럼들을 대상으로 할 것인지 결정해야 합니다.

다음과 같이 할수 있겠네요.

select a.* from ADB1..TAB1 a, ADB1..TAB2 b where a.CustNo = b.CustNo


마지막으로 서브 쿼리에서 Where 조건을 쓰시면 됩니다.

select * from ADB1..TAB1 a

where A.CustNo in (select CustNo from ADB1..TAB2 b

where b.Coldate <= '20091014')


ㅎㅎ님이 2009-10-19 13:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3927서브쿼리 변환 질문 [1]
sybase
2009-10-22
7794
3926ETL에러 failed to allocate a SYSV semaphore
김진수
2009-10-21
6638
3925db device resize에 관하여 질문! [1]
이정민
2009-10-21
6376
3923쿼리문좀 보아 주세용 [1]
sybaser
2009-10-14
6818
3922select * into #temp from table 에서 임의의 새로운 필드 추가시.. [2]
이광호
2009-10-08
7139
3921insert 쿼리 오류 조언 부탁드립니다. [2]
파파
2009-10-07
6154
3920속도가느려서 그러는데.... [2]
삼루타
2009-10-06
7272
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.029초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다