【问题标题】:problem with select选择问题
【发布时间】:2011-11-09 09:14:42
【问题描述】:

我有一个包含两列行的表格

A 1
A 2
B 1
B 3
C 1
C 2
C 3

我只想从这个 ID(a,b 或 c) 中得到它,它只有 2 行,值为 1,2,所以从这个表中我应该得到 a,因为 b 没有 2 行,并且c 有 1 和 b 的行,但也有 c.. 的行。

获取此行的最简单方法是什么?

【问题讨论】:

    标签: sql sql-server-2005 select relational-algebra


    【解决方案1】:
    SELECT col1
    FROM YourTable
    GROUP BY col1
    HAVING COUNT(DISTINCT col2) =2 AND MIN(col2) = 1 AND MAX(col2) = 2
    

    或另一种可扩展至 2 个以上数字的方式

    SELECT col1
    FROM   yourtable
    GROUP  BY col1
    HAVING MIN(CASE
                 WHEN col2 IN ( 1, 2 ) THEN 1
                 ELSE 0
               END) = 1
           AND COUNT(DISTINCT col2) = 2 
    

    【讨论】:

      【解决方案2】:
      select t1.col1 
      from table as t1 
      left join table as t2 on (t1.col1 = t2.col1) 
      where t1.col2 = 1 and t2.col2 = 2;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-13
        • 2015-01-09
        相关资源
        最近更新 更多