我的桌子的例子

名称代号
乔拉斯SD02
乔拉斯da014
阿尔伯特cca01
阿尔伯特da014
Julito SD02
Julito da014
韦尔格尔cca01
韦尔格尔da014


我想选择不带sd02的所有da014,所以我的输出应该是Vergel和Albert,因为它们都没有SD02

我应该如何查询

谢谢

最佳答案

您可以在GROUP BY子句中使用HAVING使用基于条件聚合的过滤:

SELECT Name
FROM your_table_name
GROUP BY Name
HAVING
  SUM(Code = 'da014') AND /* Has code `da014` */
  NOT SUM(Code = 'sd02') /* Does not have code sd02 */

10-06 02:49