【问题标题】:Execute multiple statement in single SQLITE在单个 SQLITE 中执行多个语句
【发布时间】:2017-08-15 08:19:49
【问题描述】:

我有 4 个 CSV 文件导入 SQLITE (mastersuppress, ddsummary, rm5, excludelist)。所有文件由 1 列 (AccountNumber) 组成。

我设法在 3 个文件之间找到重复的帐号,并使用此代码将结果保存在名为 Output 的新 CSV 文件中:

select mastersuppress.Account
from mastersuppress
inner join ddsummary
on mastersuppress.Account=ddsummary.Account
union all
select rm5.Account
from rm5
inner join ddsummary
on rm5.Account=ddsummary.Account

然后我设法使用第二个代码从Output 文件中删除与excludelist 文件中帐号的副本:

delete   from Output
where    AccountNumber in
         (
         select  min(AccountNumber)
         from    excludelist
         group by
                 AccountNumber
         );

Select * FROM Output;   

如何将这 2 个代码编译为 1 个代码,而无需在进程之间创建输出文件。所以代码看起来像这样

Delete   from ***FirstCodeResult***
    where    AccountNumber in
             (
             select  min(AccountNumber)
             from    excludelist
             group by
                     AccountNumber
             );

   //Display the result

【问题讨论】:

  • 更新您的问题并描述您想要的输入和输出。
  • 您似乎想做某种设置差异操作。请显示一些示例数据,这里发生了什么。

标签: sql sqlite csv


【解决方案1】:

我会用except来表达这个:

select m.Account
from mastersuppress m inner join
     ddsummary ds
     on m.Account = ds.Account
union 
select rm5.Account
from rm5 inner join 
     ddsummary ds
     on rm5.Account = ds.Account
except
select el.AccountNumber
from excludelist el;

exceptunion 删除重复项。

【讨论】:

  • 这不会删除任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多