-1

我有一张桌子: 在此处输入图像描述

我需要一个SELECT返回以下内容的语句:对于相同的行phoneNumber,我只想返回第一行。对于 的行NULL,我想返回所有这些。尝试使用DISTINCT,但显然在这种情况下不起作用,NULL因为它只会返回 1NULL行。所以我需要的数据看起来像:

在此处输入图像描述

4

1 回答 1

0

您可以使用UNION运算符来组合两个查询的结果集。

在第一个查询中,您将仅获取具有电话号码的行,并且您将使用它GROUP BY来获取不同的电话号码。

在第二个查询中,您将获取所有没有电话号码的行。

像这样的东西应该工作:

SELECT * FROM `table`
WHERE `phoneNumber` IS NOT NULL
GROUP BY phoneNumber
UNION ALL 
SELECT * FROM `table`
WHERE `phoneNumber` IS NULL
于 2019-05-30T10:03:28.583 回答