选择列如果没有像SQL Server中B列中的值那样的值

时间:2018-05-29 21:30:31

标签: sql-server

我有Table1

enter image description here

我试图删除每个相同的A列值,如果其中一行在B列中的任何位置都有“ZX”。那么如果我做得对,它将看起来像Table2

enter image description here

我做了以下事情:

Select 
    Column A,
    Column B
From 
    Table1
Where 
    Column B not like '%ZX%'

但是,它只删除带有ZX的行而不是每个相同的列A值,并返回此Table而不是

enter image description here

我将非常感谢您的帮助!提前谢谢你:)

3 个答案:

答案 0 :(得分:2)

您可以使用NOT IN

SELECT
    ColumnA
  , ColumnB
FROM table1
WHERE ColumnA NOT IN (SELECT ColumnA FROM table1 WHERE ColumnB like '%ZX%')

答案 1 :(得分:1)

使用:NOT EXISTS,应该这样做:

Select 
[Column A],
[Column B]
From Table1 T1
where
NOT EXISTS (
SELECT 1 FROM TABLE1 T2 
WHERE T2.[Column B] like '%ZX%'
AND T2.[column a] = t1.[column a]
)

答案 2 :(得分:1)

我为此目的喜欢Select t1.* From Table1 T1 where not exists (select 1 from table1 tt1 where tt1.a = t1.a and tt1.b like '%ZX%');

table1(a, b)

这可以利用Map<String, Object> favorites = new HashMap<>(); Map<String, Object> favorite = new HashMap<>(); favorite.put("code", 32); favorites.put("favorites", favorite); rootRef.collection("users").document("frank").set(favorites, SetOptions.merge()); 上的索引。