【问题标题】:In a stored procedure how to run a query and conditionally do something在存储过程中如何运行查询并有条件地做某事
【发布时间】:2010-05-11 14:00:49
【问题描述】:

我将如何在存储过程 (SQL 2005) 中执行此操作:

count = select count(*) from table1 where line like '%success%'
if count > 0:
   delete from table1 where not line like '%success%'

感谢您的帮助。今天我的谷歌技能真的让我失望了:-(

【问题讨论】:

    标签: sql sql-server sql-server-2005 tsql stored-procedures


    【解决方案1】:

    如果有任何行line 类似于成功,那么删除任何line 不类似于成功的行?

    IF EXISTS (SELECT * from table1 where line like '%success%')
       delete from table1 where line NOT like '%success%'
    

    【讨论】:

      【解决方案2】:

      我会这样写

      if exist (select 1 from table1 where line like '%success%')
      begin
          delete from table1 where line not like '%success%'
      end
      

      【讨论】:

        【解决方案3】:

        我根本不会保留支票。检查的目的是什么?

        只需将删除查询与 where 子句一起使用即可。

        【讨论】:

        • 我假设该表是某种日志,因此如果进程结束时没有“成功”消息,您可以找出问题所在。另一方面,当有“成功”消息时,他对其他消息不感兴趣,只关心它是成功的。这是我的猜测。
        猜你喜欢
        • 2012-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多