Firebird içinde BİRLİĞİ ALL ve SİPARİŞ BY birleştiren

oy
13

Birisi de bu işe çalışabilir ve bu yüzden yardım olabilir, bu durum benim kendi soruya cevap benim ilk girişimdir. Firebird kullanarak, UNION ALL kullanarak iki sorgu sonuçlarını birleştirmek istiyorsanız, o zaman belirli bir sütun üzerinde çıkan çıktıyı sıralamak. Gibi bir şey:

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

Parantezler diğer veritabanları için geçerli sözdizimi geldi ve UNION ALL için argümanlar emin olmak için gereklidir (tablolar üzerinde çalışmak için tanımladı bir operasyon - Bir yani sırasız kayıt kümesi) ayrı ayrı sipariş edilmesi çalışmayın. Bu yapılabilir nasıl - Ancak ben Firebird çalışmak için bu sözdizimini alamadım?

Oluştur 09/12/2008 saat 22:00
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
24

SELECT C1, C2, C3
FROM (
    select C1, C2, C3 from T1
    union all 
    select C1, C2, C3 from T2
)
order by C3
Cevap 09/12/2008 saat 22:08
kaynak kullanıcı

oy
12

Alan adları eşit olması gerekmez. Eğer tarafından sırayla alan adını kullanamazsınız nedeni budur.
Bunun yerine alan indeksi kullanabilir. De olduğu gibi:

(select C1, C2, C3 from T1)
union all 
(select C7, C8, C9 from T2)
order by 3  
Cevap 09/12/2008 saat 23:18
kaynak kullanıcı

oy
4

Nasıl hakkında:

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

Eğer "Number" yerine bir Alias ​​kullanarak sipariş yeniyse Firebird sürümleri En azından çalışır.

Cevap 23/06/2015 saat 15:15
kaynak kullanıcı

oy
2

Firebird 1.5 bu benim için çalışıyor

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

ve sonra

select C1, C2, C3 from V1 order by C3
Cevap 03/02/2009 saat 15:48
kaynak kullanıcı

oy
1

TÜM (ORDER BY deyiminde olmadan) bir görünümde UNION gerçekleştirin ve ardından SİPARİŞ BY kullanarak görünümünden seçin.

Cevap 09/12/2008 saat 22:02
kaynak kullanıcı

oy
0

Hareketli order bybir sorgu kuyruğu içine alır hiçbir çıkış datagrid'e etkisi.

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
)
Cevap 17/04/2017 saat 21:59
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more