为每个搜索值返回一个结果

时间:2018-09-28 15:03:35

标签: sql

如何根据正在搜索的一组非唯一值返回唯一值?

例如:

如果我想为一个可以拥有多个电话号码的4个人的列表返回一个电话号码,但是我只能为每个人使用一个电话号码。不管用哪个电话号码联系他们,因为任何属于他们的电话号码都会吸引我。

我认为不存在这样的东西-但是如果我可以使用DISTINCT修饰符之类的东西,除非它被称为FIRST,它将解决我的问题:

SELECT FIRST ID
FROM Sample_Table
WHERE ID in ("Bob", "Sam", "Kyle", "Jordan")

图片中-来自此

Sample_Table

我希望该查询(或任何查询)返回

something like this

我正在数据库中使用这种类型的查询,其中200个“ ID”有数百万个“唯一值”,因此很难进行狡猾。

EDIT 我的数据库中的Unique值的每个值中都有数字和字母

2 个答案:

答案 0 :(得分:0)

SQL表中没有“第一个ID”之类的东西。表格代表无序集。您可以使用聚合来完成所需的操作(如果我理解正确的话):

{% set ns = namespace(found=false) %}
{% for item in items %}
    {% if item.check_something() %}
        {% set ns.found = true %}
    {% endif %}
    * {{ item.title }}
{% endfor %}
Found item having something: {{ ns.found }}

答案 1 :(得分:0)

使用group by和max方法可以帮助您:

 select id
,uniquvalue
    ,max (typeofvalue)
    from Sample_Table
    group by
    id
    ,uniquvalue