如何引用已在SQL中连接的列

时间:2017-02-08 23:53:01

标签: sql oracle

如何引用已连接的表中的列?我想参考' UniqueID'连接中的列,但我尝试过的所有方法都会抛出ORA-00904错误,说" T2.UNIQUE ID:无效的标识符"。

 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新手。

2 个答案:

答案 0 :(得分:3)

除非引用,否则表格和列名称等标识符将映射为大写。因此,您的选择将被解释为需要列名UNIQUEID,但您创建的列名为" UniqueId"引号,所以它不匹配。

您需要在创建表时取消引用该名称,或在所有查询中引用该名称。

通常最好不要使用引用的,区分大小写的列名,这就是为什么许多数据库在表/列名中使用下划线作为单词分隔符而不是驼峰大小写的一些变体。

答案 1 :(得分:0)

在创建命令中使用引用的列名:

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