开发者社区> 问答> 正文

将删除语句转换为where子句T-sql

我已经从结果表中删除了已经建立的行。我决定尝试从一开始就从插入结果表中删除行。

在使用完事实后,要从结果表中删除适当的行:

if @InterchangeAction = 'HCR'
        begin

        --Do not allow claims to be output if they have a prior submission marked 'output'
        --and the interchange 'output submission action' is marked as 'hold'
            delete from #ResultSet
             where exists ( select 1 from ClaimSubmissions CS inner join InterchangeInfo I on CS.InterchangeId = I.InterchangeId
                             where #ResultSet.ClaimId = CS.ClaimId
                             and CS.InterchangeId = @InterchangeID
                              and CS.SubmissionStatus = 'OPT'
                              and CS.OutputDate is not NULL
                          )
        end
这```  
可以按我想要的方式工作,但是我认为停止行添加会更有效。

我将开始检查:

if @InterchangeAction = 'HCR'
然后连接到现有的where子句,但是我不确定如何将delete语句转换为where子句?

任何从何处开始的指针将不胜感激。

展开
收起
祖安文状元 2020-01-05 18:01:22 422 0
1 条回答
写回答
取消 提交回答
  • 除非我缺少明显的东西,否则您不只是在寻找吗?:

    INSERT #ResultSet 
      (<Column List>)
    SELECT 
      <Column List>
    FROM 
      WhatHaveYou AS WHY
    WHERE NOT EXISTS ( select 1 from ClaimSubmissions CS 
                                inner join InterchangeInfo I 
                                    on CS.InterchangeId = I.InterchangeId
                                 where WHY.ClaimId = CS.ClaimId
                                  and CS.InterchangeId = @InterchangeID
                                  and CS.SubmissionStatus = 'OPT'
                                  and CS.OutputDate is not NULL
                              )
    
    2020-01-05 18:01:30
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
Spark SQL 2.0/2.1 Experiences 立即下载
GeoMesa on Spark SQL 立即下载