2009-12-21 10 views
14
ben bir iç yapmaya çalışıyorum

böyle bir seçme ekstresinde katılmak seçme tablolarda katılmak:SQL İç

select * 
from (select* from bars where rownum <= 10)as tab1 
inner join (select * from bars where rownum <= 10)as tab2 
on tab1.close=tab2.close 

ve aşağıdaki hatayı alıyorum: ORA-00933 SQL komutu düzgün Herhangi bir yardım sona değil Takdir edilecektir, teşekkür ederim!

cevap

39

Sadece sorgudan as kaldırın:

select * 
from (select* from bars where rownum <= 10) tab1 
inner join (select * from bars where rownum <= 10) tab2 
on tab1.close=tab2.close 
+1

Merhaba egorius, teşekkürler, işe yaradı. Ben hala bazen bazen oracle gibi kabul eder anlamıyorum ve bazen – user235693

+5

'As' bir COLUMN takma adından önce (isteğe bağlı olarak) kullanılabilir. TABLO takma adları 'as' olarak eklenemez. Örneğin: "sayımı (*) çift d'den cnt olarak seç". –

+1

SELECT sözdizimi şemasına bakmak isteyebilirsiniz (bu oldukça büyük, ancak tam sözdizimini tanımlar): http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_103a.htm#SQLRF01702 –

1
select * from 
((select* from bars where rownum <= 10)as tab1 
inner join (select * from bars where rownum <= 10)as tab2 
on tab1.close=tab2.close) 
2

hata deyimi sonlandırmak için noktalı virgül gerek senden geliyor inanıyoruz. Seç bana aksi halde iyi görünüyor.

1

sadece arasındaki boşluk ')' ve 'olarak' vermek:

select * from (select* from bars where rownum <= 10) as tab1 
inner join 
(select * from bars where rownum <= 10) as tab2 
on 
tab1.close=tab2.close