【问题标题】:Oracle SQL - Filter based on two columns matchingOracle SQL - 基于两列匹配的过滤器
【发布时间】:2021-07-05 02:50:39
【问题描述】:

早安

我想根据两列匹配的值过滤掉行。两列都在同一个表中

不确定这是否可以在 WHERE 子句中完成?

ID = 12345 和 Country 为 null 当这两列匹配时,删除该行

谢谢

【问题讨论】:

    标签: sql oracle filter oracle-sqldeveloper where-clause


    【解决方案1】:

    你可以用这个:

    DELETE
    FROM
        table_name
    WHERE
        (ID = 12345 and Country is null);
    ```
    
    # Or in a more "safe" way, use soft delete (adding a new column):
    
    alter table [your table name] add is_deleted varchar2(1) default 'N';
    
    update [your table name]
    set    is_deleted = 'Y'
    where  (ID = 12345 and Country is null);
    

    【讨论】:

    • 感谢您如此迅速地与我们联系。我可能没有说清楚。我不想对数据库进行更改。我想在没有这些行的情况下提取语句
    【解决方案2】:

    我想通了

    其中 (ID != 12345) 或 (Country is not NULL) 这会保留具有该 ID 并具有 Country 的所有内容,但会删除 Country 为空值的行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 2016-10-25
      • 2018-02-18
      • 2020-06-22
      • 2011-12-19
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      相关资源
      最近更新 更多