복붙노트

[SQL] 파이어 버드에 UNION ALL과 ORDER BY를 결합

SQL

파이어 버드에 UNION ALL과 ORDER BY를 결합

누군가가 잘으로 실행할 수 있으며, 그래서 도움이 될 수 있기 때문에 이것은 내 자신의 질문에 대답에 내 첫 번째 시도이다. 파이어 버드 사용하여, 나는 주어진 열에 다음 종류의 결과 출력 UNION ALL을 사용하여 두 쿼리의 결과를 결합하려는. 뭔가 같은 :

(select C1, C2, C3 from T1)
union all 
(select C1, C2, C3 from T2)
order by C3

괄호는 다른 데이터베이스에 대한 유효한 구문에서오고, UNION ALL (테이블에 작업에 정의되어 작업 - 즉, 기록의 정렬되지 않은 세트)에 반드시 인수를 만드는 데 필요한 개별적으로 주문하려고하지 않습니다. 그러나 나는 파이어 버드에서 작업이 구문을 가져올 수 없습니다 - 어떻게 수행 할 수 있습니다?

해결법

  1. ==============================

    1.

    SELECT C1, C2, C3
    FROM (
        select C1, C2, C3 from T1
        union all 
        select C1, C2, C3 from T2
    )
    order by C3
    
  2. ==============================

    2.필드 이름이 동일 할 필요는 없습니다. 당신이에 의해 순서대로 필드 이름을 사용할 수없는 이유입니다. 대신 필드 인덱스를 사용할 수 있습니다. 마찬가지로 :

    필드 이름이 동일 할 필요는 없습니다. 당신이에 의해 순서대로 필드 이름을 사용할 수없는 이유입니다. 대신 필드 인덱스를 사용할 수 있습니다. 마찬가지로 :

    (select C1, C2, C3 from T1)
    union all 
    (select C7, C8, C9 from T2)
    order by 3  
    
  3. ==============================

    3.방법에 대해 :

    방법에 대해 :

    select C1, C2, C3 from T1
    union all 
    select C1, C2, C3 from T2
    order by 2
    

    당신이 "수"대신 별칭을 사용하여 주문하는 경우 새로운 파이어 버전에서 적어도 그것을 작동합니다.

  4. ==============================

    4.파이어 버드 1.5이 나를 위해 작동

    파이어 버드 1.5이 나를 위해 작동

    create view V1 (C1, C2, C3) as
      select C1, C2, C3 from T1
      union all 
      select C1, C2, C3 from T2
    

    그리고

    select C1, C2, C3 from V1 order by C3
    
  5. ==============================

    5.(ORDER BY 절없이) 뷰의 UNION ALL을 수행 한 후 ORDER BY를 사용하여보기에서 선택합니다.

    (ORDER BY 절없이) 뷰의 UNION ALL을 수행 한 후 ORDER BY를 사용하여보기에서 선택합니다.

  6. ==============================

    6.쿼리 꼬리에 의해 순서를 이동하면 출력 데이터 그리드에 영향을주지 않습니다.

    쿼리 꼬리에 의해 순서를 이동하면 출력 데이터 그리드에 영향을주지 않습니다.

    select * from (
        select first 1
            C1
        from T1
        order by id desc
    )
    union all
    select * from (
        select first 1
            C1
        from T2
        order by id desc
    )
  7. from https://stackoverflow.com/questions/354224/combining-union-all-and-order-by-in-firebird by cc-by-sa and MIT license