sql-server – SQL:如何在特定列中仅选择具有唯一值的行?
发布时间:2020-05-24 09:16:28 所属栏目:MsSql 来源:互联网
导读:感谢百万人每个人的回应。不幸的是,没有一个解决方案似乎在我的目的地工作,而我的猜测是,我提供的例子已经搞砸了。 所以让我再试一次。 我的表看起来像这样: contract project activityrow1 1000 8000 10row2 1000 8000 20row3 1000 8001 10row4 2000
|
感谢百万人每个人的回应。不幸的是,没有一个解决方案似乎在我的目的地工作,而我的猜测是,我提供的例子已经搞砸了。 所以让我再试一次。 我的表看起来像这样: contract project activity row1 1000 8000 10 row2 1000 8000 20 row3 1000 8001 10 row4 2000 9000 49 row5 2000 9001 49 row6 3000 9000 79 row7 3000 9000 78 基本上,我正在寻找的查询将为“合同,活动”返回“2000,49”,因为只有合同#2000有一个,只有一个唯一的活动值。 再次感谢一百万的提前, 解决方法更新以使用您提供的新数据:使用原始数据的解决方案可以在此答案的最后找到。 使用您的新数据: DECLARE @T TABLE( [contract] INT,project INT,activity INT )
INSERT INTO @T VALUES( 1000,8000,10 )
INSERT INTO @T VALUES( 1000,20 )
INSERT INTO @T VALUES( 1000,8001,10 )
INSERT INTO @T VALUES( 2000,9000,49 )
INSERT INTO @T VALUES( 2000,9001,49 )
INSERT INTO @T VALUES( 3000,79 )
INSERT INTO @T VALUES( 3000,78 )
SELECT DISTINCT [contract],activity FROM @T AS A WHERE
(SELECT COUNT( DISTINCT activity )
FROM @T AS B WHERE B.[contract] = A.[contract]) = 1
收益: 使用原始数据的解决方案 警告: SELECT Col1,Count( col1 ) AS count FROM table GROUP BY col1 HAVING count > 1 这应该会列出col1中所有不是不同的值。您可以将其放在表var或temp表中并加入。 以下是使用子查询的示例: DECLARE @t TABLE( col1 VARCHAR(1),col2 VARCHAR(1),col3 VARCHAR(1) )
INSERT INTO @t VALUES( 'A','B','C' );
INSERT INTO @t VALUES( 'D','E','F' );
INSERT INTO @t VALUES( 'A','J','K' );
INSERT INTO @t VALUES( 'G','H','H' );
SELECT * FROM @t
SELECT col1,col2 FROM @t WHERE col1 NOT IN
(SELECT col1 FROM @t AS t GROUP BY col1 HAVING COUNT( col1 ) > 1)
这返回: D E G H 另一种用户使用临时表和加入的方法: DECLARE @t TABLE( col1 VARCHAR(1),'H' );
SELECT * FROM @t
DROP TABLE #temp_table
SELECT col1 INTO #temp_table
FROM @t AS t GROUP BY col1 HAVING COUNT( col1 ) = 1
SELECT t.col1,t.col2 FROM @t AS t
INNER JOIN #temp_table AS tt ON t.col1 = tt.col1
还返回: D E G H (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server-2008 – 是否可以在SQL Server 2008中选择特定的
- SQL Server中网络备份一例
- MySQL查询倒数第二条记录实现方法
- sql server 使用DATEADD函数将指定日期加上10天的简单示例
- .net – OrderBy然后在F#中
- sql – 在postgres中使用LIMIT时未使用的索引
- sql-server – 在NORECOVERY模式下确定数据库的LSN
- SQL Server中用于寻址表的正确语法是什么?
- 数据库 – 有没有办法在Oracle SQL Developer中查看关系?
- sql-server – 快速将一些csv数据导入sql server的好工具
