Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL筛选器基于一组值进行重复_Sql - Fatal编程技术网

SQL筛选器基于一组值进行重复

SQL筛选器基于一组值进行重复,sql,Sql,我有一个表,列出了所有客户的电话号码,客户可以有许多电话号码,例如,手机,固定电话等 我只需要为我的目的每人一个电话号码 在数据中,我有一个PersonID,每个电话记录都有一个PersonID 结果: 我想要的是有一个查询,显示我唯一的PersonID和他们的手机号码,然后如果没有手机号码,给我显示固定电话,如果没有固定电话,给我显示电子邮件 一种方法使用聚合: select personid, coalesce( max(case when type = 'mobile' th

我有一个表,列出了所有客户的电话号码,客户可以有许多电话号码,例如,手机,固定电话等

我只需要为我的目的每人一个电话号码

在数据中,我有一个PersonID,每个电话记录都有一个PersonID

结果:
我想要的是有一个查询,显示我唯一的PersonID和他们的手机号码,然后如果没有手机号码,给我显示固定电话,如果没有固定电话,给我显示电子邮件

一种方法使用聚合:

select personid,
       coalesce( max(case when type = 'mobile' then phone end),
                 max(case when type = 'landline' then phone end),
                 max(email)
               )
from t
group by personid

你能提供表结构吗?你想删除记录(如你的问题标题)还是只过滤它们以获得输出(如你的问题)?@Phil filter out我想,我正在编写一个查询以从SQL数据库中提取,然后我将生成一个呼叫列表(每个客户一个号码)请提供样本数据和预期结果。