【问题标题】:Common group from two selects, sql server来自两个选择的公共组,sql server
【发布时间】:2012-02-18 00:08:20
【问题描述】:

我如何联合或加入或 CTE 两个选择,以便我只得到两者中都存在的结果

SELECT DISTINCT userid FROM ads WHERE status <> 'BASIC'

假设结果集是:1、2、3、4、5

SELECT DISTINCT userid FROM ads WHERE state = 'Alabama'

假设结果集是 2、4、5、8、9

那么我想要 2、4 和 5

【问题讨论】:

    标签: sql-server select join


    【解决方案1】:

    这就是INTERSECT 所做的。

    我从查询中删除了 DISTINCT,因为 SQL Server 中的 INTERSECT 暗示了这一点(它没有实现 INTERSECT ALL

    SELECT userid
    FROM   ads
    WHERE  status <> 'BASIC'
    INTERSECT
    SELECT userid
    FROM   ads
    WHERE  state = 'Alabama'  
    

    【讨论】:

    • 非常感谢。我会说,从来没有听说过那个,但在许多情况下都非常有用。我可以看到还有一个“EXCEPT”,我想在这个例子中它会返回所有在阿拉巴马州升级广告但根本没有广告的用户 ID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    相关资源
    最近更新 更多