Sql 将文本文件中的动态和静态数据混合插入到表中
我有两张表,如下所示 条件(文本文件存储为表) 观察Sql 将文本文件中的动态和静态数据混合插入到表中,sql,postgresql,select,sql-insert,Sql,Postgresql,Select,Sql Insert,我有两张表,如下所示 条件(文本文件存储为表) 观察 Id subject_id START_DATE END_DATE 1 D1 21/01/2007 21/01/2017 1 D2 23/05/1998 23/05/2008 1 D3 13/04/2017 13/04/2020 我希望我的输出如下。如您所见,除了来自文本文件(存储为条件表)的subject\u id列之外,
Id subject_id START_DATE END_DATE
1 D1 21/01/2007 21/01/2017
1 D2 23/05/1998 23/05/2008
1 D3 13/04/2017 13/04/2020
我希望我的输出如下。如您所见,除了来自文本文件(存储为条件表)的subject\u id
列之外,其余的(id、START\u DATE、END\u DATE)
列都是静态的和相同的
Id subject_id START_DATE END_DATE
1 D1 21/01/2007 21/01/2017
1 D2 23/05/1998 23/05/2008
1 D3 13/04/2017 13/04/2020
2 A1 01/01/2000 01/01/2010
2 A2 01/01/2000 01/01/2010
2 A3 01/01/2000 01/01/2010
2 A4 01/01/2000 01/01/2010
这是我尝试过的,但无法获得预期的输出,因为观察表必须使用START\u DATE
和END\u DATE
insert into observation (Id,subject_id,start_date,end_date)
select '2',subject_id,'01/01/2000','01/01/2010' from condition;
可以帮我吗?尝试使用工会:
SELECT Id, subject_id, START_DATE, END_DATE FROM Observation
UNION ALL
SELECT '2', subject_id, '01/01/2000', '01/01/2010' FROM condition
ORDER BY Id, subject_id;
如果您确实希望观察表看起来像您预期的输出,那么您当前的插入实际上是正确的。尝试使用并集:
SELECT Id, subject_id, START_DATE, END_DATE FROM Observation
UNION ALL
SELECT '2', subject_id, '01/01/2000', '01/01/2010' FROM condition
ORDER BY Id, subject_id;
如果您真的希望观察表看起来像您预期的输出,那么您当前的插入实际上是正确的。我在“distinct”行1处或附近遇到类似的错误
错误:语法错误:选择“2”,distinct person\u id,“01/01/2000”,“01/01/2010”F^代码>那么你没有运行我的代码,因为我从来没有在任何地方使用过DISTINCT
。好吧,问题是有时候主题ID可能是重复的。所以我用了Distinct你能告诉我在这种情况下如何使用Distinct吗?我知道你告诉过我的insert查询可以正常工作,但是当存在重复项时,即使这样也会引发错误我不明白你想用distinct做什么,但是语法是错误的。您可能想在这一点上打开一个新问题。我得到一个类似以下的错误错误:语法错误位于或接近“distinct”行1:选择“2”,distinct person\u id,“01/01/2000”,“01/01/2010”F^代码>那么你没有运行我的代码,因为我从来没有在任何地方使用过DISTINCT
。好吧,问题是有时候主题ID可能是重复的。所以我用了Distinct你能告诉我在这种情况下如何使用Distinct吗?我知道你告诉过我的insert查询可以正常工作,但是当存在重复项时,即使这样也会引发错误我不明白你想用distinct做什么,但是语法是错误的。此时,您可能想提出一个新问题。