什么是 SQL 相当于 LINQ .All()

What is SQL equivalent to LINQ .All()

这在 SQL 中会是什么样子(SQL 服务器,如果你想说的话)?

// where people is a list of Person objects with property Name
bool bobs = people.All(p => p.Name == "Bob");

你会检查是否有不符合条件的记录:

not exists(select * from Persons where not Name = 'Bob')

由于与 null 进行比较的规则在 C# 和 SQL 之间是不同的,如果字段允许空值,您将需要一个空值条件:

not exists(select * from Persons where Name <> 'Bob' or Name is null)

我不确定 Linq 究竟会创建什么查询,但 SQL 中的等效项是 ALL 运算符:

'Bob' = ALL (SELECT name FROM people)