Q&A

  • 오잉? Firebird 1.5에서 nested SQL을 지원하지 않나요?
<!--CodeS-->
select count(*) from (
    select distinct exp from table1 group by exp
);
<!--CodeE-->

위와 같은 문장을 실행했더니 어이없게도

<!--CodeS-->
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 3.
select.
<!--CodeE-->

와 같은 오류메시지가 뜨는데요..흠냐.. nested query문장의 표준 문법상으로는 분명 문제가 없는 거 같은데..헐...

IBExpert가 이상한 건지..Firebird가 이상한 건지....

일단 Interbase 메뉴얼을 뒤져봐도 거기에도 nested query가 된다는 말은 없어서 왠지 불안하고..흠냐리.

보통 nested select가 지원안 될때는 템프 테이블을 만들었다가 거기에서 다시 select해 오는 그런 문법을 지원하는 DBMS도 있던 걸로 기억나는데..음.. Firebird에서는 어떻게 지원을 하는 것인지..음..

3  COMMENTS
  • Profile
    최용일 2005.10.22 10:30
    안녕하세요. 최용일입니다.

    서브쿼리도 사용할 수 있지만 제약이 있다네요... where, in절에서만 사용할 수 있다고 하네요...

    http://www.delphikorea.com/board/zboard/view.php?id=failure&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=firebird&select_arrange=headnum&desc=asc&no=74

    델코에 조복기님이 올려둔 강좌 참고해보세요...

    ^^ 항상 즐코하세요...

  • Profile
    토니 2005.10.23 09:49
    오우...!!!! (감사한 답변주신 최용일님과 좋은 정보를 제공해 주신 조복기님에 대한 감탄사!)

    허걱..이런..!! (where, in 구문에서만 서브쿼리를 쓸 수 있다는 말에 어이가 없어섬...-,.-;;; )

    오잉? (정확한 에뮬레이션이 있는 구문이 뭘까 하는 궁금증 발생...............)

    음..From절에서 쓸 수 있도록 '정확한 에뮬레이션'을 해주려면 무엇을 어떻게 해야 하는 것인지 혹시 아시는지여?

    firebird 는 FROM 구문에서의 서브쿼리의 사용에 대응하고 있지 않지만, 정확한 에뮬레이션이 있는 구문에서는 처리가 가능하다.

  • Profile
    이중철 2005.10.24 20:08
    제약이 From절에 있습니다.
    Select절에는 가능합니다.
    물론 앞서 거론된 Where절하고요
    inline view라고 하는 From절의 SQL은 지원하지 않지만 Stored Procedure를 제공합니다.
    Firebird의 Stored Procedure는 사용방법이 특이합니다. 제가 알기로는 From절에만
    가능하더군요