sql - 选择问题

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

我有一个带有两列的行的表

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

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

获得这一行的最简单方法是什么?

最佳答案

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 

关于sql - 选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287387/

相关文章:

sql - 在SQL Server 2008中将NVARCHAR转换为DATETIME

sql - 截断的 LISTAGG 字符串

sql-server-2005 - 以编程方式确定数据库上的可用空间?

string - 在 Smalltalk 中,如何从数组中选择字符串和整数

mysql - 在sql中按组排序

sql - 来自同一个表的两个sql查询的总和结果

database - 将现有数据库转换为数据库项目

sql-server - 在 SQL Server 2005 中存储 SSIS 包需要什么权限?

MySQL DATE_SUB 生日选择语句

mysql - 按区域设置然后选择语言?