【问题标题】:Turning a select statement with group and having clause into a delete?将带有组和有子句的选择语句转换为删除?
【发布时间】:2013-11-20 12:17:30
【问题描述】:

我有重复的问题。此查询选择重复项

select account_number, acc_cd, seq, count (*)
FROM table
group by account_number, acc_cd, seq
having count(*)>1

现在我想把它变成一个delete语句来删除select语句的结果?

我已经将副本的 1 个副本移动到 tmp 表中,以便从选择中删除所有数据?

有人知道怎么做吗?我见过嵌套查询,但我不确定。

【问题讨论】:

    标签: sql duplicates sybase sql-delete


    【解决方案1】:

    试试这个:

    delete from MyTable
    where exists (
        select 1 from MyTable t2
        where MyTable.account_number=t2.account_number and MyTable.acc_cd=t2.acc_cd and MyTable.seq=t2.seq
    )
    

    【讨论】:

    • 嗨,干杯,当我尝试在 sybase 中运行它时,我得到了错误,“子查询只允许一个选择列表项”我认为问题出在计数 (*) 但它仍然会发生?跨度>
    • 嗨,谢谢你,但它不喜欢 WHERE IN 子句中的多个值。我只是要移动到 tmp 表然后删除存在的地方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2018-01-22
    • 2015-08-19
    相关资源
    最近更新 更多