在sql server查询中选择具有两种可能性之一的记录

时间:2016-05-03 15:01:59

标签: sql-server

提前感谢您的帮助,我在这里:

我有一张这样的表:

|Content | Syndication_type | Syndication_publication|
------------------------------------------------------
|    A   |          1       |              1         |
|    A   |          2       |              1         | 
|    B   |          2       |              1         |
|    C   |          1       |              0         |
|    D   |          1       |              0         |
|    D   |          2       |              1         |
|    E   |          2       |              1         |
|    F   |          1       |              1         |  

我需要获取只有一个syndication_typesyndication_publication = 1的内容。

例如,如果我选择syndication_type = 2,则必须获取Content = BContent = DContent = E,因为syndication_publication = 1只有syndication_type = 2 1}}。

Content = 2不是这种情况,因为Syndication_type = 1Syndication_type = 2都有Syndication_publication = 1,而Content = D没有问题,因为它只有{{} 1}}与Syndication_publication = 2

我希望我解释了我的目的...... :)

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

尝试:

{{1}}

答案 1 :(得分:0)

您可以使用NOT EXISTS

SELECT  [Content]
FROM    MyTable mt
WHERE   [Syndication_type] = 2
        AND NOT EXISTS (
            SELECT  1
            FROM    MyTable mt2
            WHERE   mt2.[Content] = mt.[Content]
                    AND mt2.Syndication_publication = 1
                    AND mt2.Syndication_type <> mt.Syndication_type 
        )