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
운영게시판
최근게시물
DB2 Q&A 2953 게시물 읽기
No. 2953
WHERE 절에서 IF 문 처럼 조건을 쓰고 싶습니다.
작성자
최대호(cdhkjh)
작성일
2010-01-11 20:37
조회수
11,441

이미 전 질문글에서 CASE WHEN을 쓰는 문제를 적용했는데요

문제가 좀 있어서 질문드립니다.

제 쿼리는

SELECT * FROM {데이터테이블} WHERE
날짜 = '날짜'
AND 아이디 IN ( CASE WHEN
                                        (SELECT COUNT(*) {아이디테이블} WHERE 날짜='날짜'  AND 키값='키값')  > 0    /* 아이디테이블에 키값에 대한 필드가 있다면
                                  THEN
                                         (SELECT 아이디 FROM {친구테이블} WHERE 날짜='날짜' AND 친구아이디= '아이디')  /* 이부분에서 조회 결과가 1개가 아닙니다.(에러가 나는듯..) 
                                  ELSE
                                          'TEST'
                                  END) 

-------------------------------------------------------------------------       

1. 아이디 테이블에서 키값에 맞는 아이디가 존재하는지 검색

2. 키값에 맞는 아이디가 존재한다면 친구테이블에서 아이디를 친구로 가지고 있는 모든 필드의 아이디 값을 추출

3. 추출된 여러개의 아이디를 IN으로 연결하여 데이터 테이블의 해당 아이디 자료를 모두 검색

 

이런 절차입니다. 

빨간부분 처럼 에러 메세지가:: 결과값이 1개가 아니라고 하는데 어떤 방법으로 처리해야할지 궁금합니다.

항상 도움만 받아서 죄송하구요... 도움 부탁드립니다.                            

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

SELECT * FROM {데이터테이블}
 WHERE 날짜 = '날짜'
   AND 아이디 IN (
      SELECT B.아이디
        FROM {아이디테이블} A
            ,{친구테이블}   B
       WHERE A.날짜 = '날짜'
         AND A.키값 = '키값'
         AND B.날짜 = '날짜'
         AND B.친구아이디 =  A.아이디 )

박진복(pjb708)님이 2010-01-12 08:43에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2957DB2 UDB : column type 관련 질문 [1]
궁금해
2010-01-21
8628
2955연속된 날짜 출력.. [1]
김인수
2010-01-15
9632
2954EXEC SQL SELECT 시 INTO 가 반드시 필요한가요? [2]
허윤정
2010-01-14
8987
2953WHERE 절에서 IF 문 처럼 조건을 쓰고 싶습니다. [1]
최대호
2010-01-11
11441
2951SAP에 있는 테이블인데...테이블명이 특수기호가 들어있어서... [1]
라라라
2010-01-07
9673
2940db2diag.log 크기 줄이는 방법 [2]
라라라
2009-12-09
9821
2939DB2 이전중 tablespace관련 실수에 대한 복구 질문입니다.
black
2009-12-07
8894
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다