2017-02-08 7 views
0

連結されたテーブルの列をどのように参照しますか?私は結合の 'UniqueID'列を参照しようとしていますが、ORA-00904のエラー "T2.UNIQUE ID:無効な識別子"と表示されます。SQLで連結された列を参照する方法

create table cdm_user.uniquesubjectIDDEW as (

select distinct concat (site,screening_no) "UniqueID" , visit, site, Screening_no 
from databrowser.v_data_entry_workflow 
where study = '3508' 

); 

commit; 


Select * 
from cdm_user.uniquesubjectIDDEW t1 
left join cdm_user.uniquesubjectIDDEW t2 
on t1.UniqueID = t2.UniqueID 
and t2.visit = 'Screening' 
Where t1.visit = 'Week_52' 
and t2.visit is null 

私はSQLの初心者です。

+0

あなたはCONCAT(サイト、screening_no) 'に変更する場合は、 "ユニークID"'( "AS")として何が起こります – Joe

答えて

3

引用されていない限り、テーブル名や列名などの識別子は大文字にマップされます。したがって、SELECTは列名UNIQUEIDが必要と解釈されますが、列名は "UniqueId"として引用符で作成され、一致しません。

テーブルを作成するときに名前を引用符で囲まないか、すべてのクエリで引用符を引用する必要があります。

大文字と小文字を区別する大文字と小文字を区別する列名を使用しない方が一般的です。なぜなら、大量のデータベースでは、ラクダの大文字小文字の違いではなく単語/区切り記号としてアンダースコアが使用されます。 createingコマンドで

0

使用引用符で囲まれた列名:

alter table cdm_user.uniquesubjectIDDEW add primary key ("UniqueID"); 
関連する問題