sql - 选择 A 列相同但 B 列不同的行

标签 sql sql-server sql-server-2008

ID          Zip        Room
----------- ---------- ------
317         94087      S105
318         94087      L603
1739        94404-1801 L603
1823        94401-2129 L603
1824        94401-2129 L603
2135        94404-1801 L603
2268        95136-1459 S604
2269        95136-1459 S604
3704        92673-6417 L402
4479        93454-9670 L402
4480        93454-9670 L402
4782        92395-4681 L402
4783        92395-4681 L402
4852        92886-4411 L402
4853        92886-4411 L402
4959        92673-6417 L402
5153        91773-4028 L402
5202        91773-4028 L402
5211        91765-2959 L402
5212        91765-2959 L402
5388        92336-0605 L402
5392        92336-0605 L402
5727        92870      L402
5728        92870      L402
5831        92557      L402
5916        92557      L402

如何选择具有相同邮政编码但房间不同的 ID?

在上表中,我希望结果是:

ID          Zip        Room
----------- ---------- ------
317         94087      S105
318         94087      L603

使用 SQL Server 2008

最佳答案

您可以使用EXISTS :

SELECT ID, Zip, Room 
FROM dbo.Table t1
WHERE EXISTS
(
   SELECT 1 FROM dbo.Table t2
   WHERE t2.Zip = t1.Zip
   AND t2.Room <> t1.Room
)

关于sql - 选择 A 列相同但 B 列不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093642/

相关文章:

sql-server-2008 - 从另一个存储过程获取结果摘要

mysql - 选择每个外键类型的最高记录

MySQL:预计算数据以获得更好的性能

php - 比较两个不同类型的数据库表并比较它们的数据的最佳方法?

javascript - Nodejs mssql和PreparedStatement,执行没有被调用

sql - 使用 nodes() 方法在 SQL 中展平分层 XML

sql - 将 varchar 值 '71.8' 转换为数据类型 int 时转换失败

php - 是否有更优雅的方式来内爆数据以进行查询?

sql - 避免使用 SET TRUSTWORTHY ON

c# - 如何获取我的全文目录中使用的停用词列表?