删除如果无匹配表中的条件-SQL Server中的条件

发布于 2025-02-10 01:35:17 字数 459 浏览 4 评论 0原文

假设我有一个带有以下行的SQL表:

  1. 名称:null,id:15

  2. 名称:'myname',ID:15

我想删除所有带有名称= null的行,但只有在表中不存在带有列名的行不存在的行。因此,在这种情况下,它不应删除任何行。但是,如果找到:

  1. 名称:null,id:15

  2. 名称:'null',ID:15

应该删除这两个行。

我尝试了此查询,但它不起作用:

DELETE FROM MyTable
WHERE Name = NULL 
AND NOT EXISTS 
(SELECT 1 FROM MyTable a 
LEFT JOIN ...
LEFT JOIN ... 
WHERE Name IS NOT NULL) 

Let's say I have a SQL table with the following rows:

  1. Name: Null, Id: 15

  2. Name: 'MyName', Id: 15

I want to delete all the rows with Name = NULL but ONLY IF rows with column Name IS NOT NULL don't exist in the table. So in this case it shouldn't delete any row. However, if it finds:

  1. Name: Null, Id: 15

  2. Name: 'Null', Id: 15

it should delete both rows.

I have tried this query but it doesn't work:

DELETE FROM MyTable
WHERE Name = NULL 
AND NOT EXISTS 
(SELECT 1 FROM MyTable a 
LEFT JOIN ...
LEFT JOIN ... 
WHERE Name IS NOT NULL) 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

九厘米的零° 2025-02-17 01:35:17

您可以使用存在

DELETE FROM MyTable
WHERE Name IS NULL
  AND NOT EXISTS (SELECT 1
    FROM MyTable t2
    WHERE t2.Name IS NOT NULL)

You can use an EXISTS

DELETE FROM MyTable
WHERE Name IS NULL
  AND NOT EXISTS (SELECT 1
    FROM MyTable t2
    WHERE t2.Name IS NOT NULL)
回梦 2025-02-17 01:35:17

尝试这样

   DELETE FROM 
    MyTable
    WHERE  
    
    Name like '%NULL%' OR  
    Name like '%Null%'  OR  
    Name like '%null%' 
     

Try like This

   DELETE FROM 
    MyTable
    WHERE  
    
    Name like '%NULL%' OR  
    Name like '%Null%'  OR  
    Name like '%null%' 
     
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文