【问题标题】:Sql Server 2012: How to find elements that are not in the listSql Server 2012:如何查找不在列表中的元素
【发布时间】:2014-03-06 15:06:55
【问题描述】:

我有一份国家/地区列表,我想找出表格中没有的国家/地区。

假设我的列表是这样的:('Greece', 'Chile', 'Hawaii') 并且表中已经存在希腊和智利,但不存在夏威夷。

如何进行查询以查找我提供的列表中缺少的内容?

提前致谢。

【问题讨论】:

    标签: sql-server list search elements


    【解决方案1】:

    一种方法是将您的条件放在另一个表中,然后使用外连接。例如:

    DECLARE @Test as table(Cnty varchar(50))
    
    insert into @Test(Cnty) values ('Greece')
    insert into @Test(Cnty) values ('Chile')
    
    
    SELECT tmp2.Cntry FROM (
    SELECT * FROM @Test t
        RIGHT JOIN (SELECT 'Greece' Cntry UNION ALL
                SELECT 'Chile' UNION ALL
                SELECT 'Hawaii') Tmp
            ON t.Cnty = tmp.Cntry
    ) tmp2
    WHERE cnty is null
    

    【讨论】:

    • 谢谢,但我的问题是列表中不仅有3个元素,所以我不能一个一个地插入。
    • 您可以通过多种方式构建表格。例如,我创建了一个表值函数,它将分隔字符串转换为值表。如果这仍然不起作用,请提供有关您的要求的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多