2017-02-08 2 views
0

Wie verweisen Sie auf eine Spalte in einer Tabelle, die verkettet wurde? Ich versuche, die 'UniqueID' Spalte in einem Join zu verweisen, aber alle Möglichkeiten, die ich es versucht habe, werfen den ORA-00904-Fehler "T2.UNIQUE ID: Ungültiger Bezeichner".So verweisen Sie auf eine in SQL verkettete Spalte

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 

Jede Hilfe wird sehr geschätzt, da ich neu in SQL bin.

+0

Was passiert, wenn Sie dies geschieht ändern 'concat (Website, screening_no) AS "UniqueID"' (die "AS") – Joe

Antwort

3

Sofern nicht anders angegeben, werden Bezeichner wie Tabellen- und Spaltennamen in Großbuchstaben abgebildet. Ihre Auswahl wird also so interpretiert, dass sie den Spaltennamen UNIQUEID benötigt, aber Sie haben den Spaltennamen als "UniqueId" mit Anführungszeichen erstellt, sodass sie nicht übereinstimmt.

Sie müssen den Namen entweder beim Erstellen der Tabelle oder bei allen Abfragen angeben.

Im Allgemeinen ist es besser, keine Spaltennamen in Groß- und Kleinschreibung anzugeben. Aus diesem Grund verwenden viele Datenbanken Unterstriche in Tabellen-/Spaltennamen als Worttrennzeichen und nicht als Variante von camel case.

0

Verwendung zitierte Spaltennamen in createing Befehl:

alter table cdm_user.uniquesubjectIDDEW add primary key ("UniqueID"); 
Verwandte Themen