仅当计数=2 SQL Server 2008时选择此选项

仅当计数=2 SQL Server 2008时选择此选项,sql,sql-server,tsql,Sql,Sql Server,Tsql,我只想在另一个select==2的条件下进行选择 比如说 select field1 from table1 where count((select field2 from table2)) = 2 这可能吗?您应该查看SQL的分组方式 select field1 from table1 where (select count(field2) from table2)=2 e、 g 您应该查看SQL的GROUPBY e、 g 试一试: SET NOCOUNT ON declare @a ta

我只想在另一个select==2的条件下进行选择

比如说

select field1 from table1 where count((select field2 from table2)) = 2
这可能吗?

您应该查看SQL的分组方式

select field1 from table1 where (select count(field2) from table2)=2
e、 g

您应该查看SQL的GROUPBY

e、 g

试一试:

SET NOCOUNT ON
declare @a table (RowID int)
insert @a values(1);insert @a values(2);insert @a values(3);
declare @b table (RowID int)
insert @b values(10);insert @b values(20)
SET NOCOUNT OFF

select a.RowID FROM @a a WHERE 2=(SELECT COUNT(RowID) FROM @b)

delete @b where RowID=20

select a.RowID FROM @a a WHERE 2=(SELECT COUNT(RowID) FROM @b)
输出:

RowID
-----------
1
2
3

(3 row(s) affected)

(1 row(s) affected)

RowID
-----------
0行受影响

请尝试:

SET NOCOUNT ON
declare @a table (RowID int)
insert @a values(1);insert @a values(2);insert @a values(3);
declare @b table (RowID int)
insert @b values(10);insert @b values(20)
SET NOCOUNT OFF

select a.RowID FROM @a a WHERE 2=(SELECT COUNT(RowID) FROM @b)

delete @b where RowID=20

select a.RowID FROM @a a WHERE 2=(SELECT COUNT(RowID) FROM @b)
输出:

RowID
-----------
1
2
3

(3 row(s) affected)

(1 row(s) affected)

RowID
-----------


受影响的0行

您的问题中列出的table1.field1和table2.field2之间没有任何关系……每个人都在大声回答他们假设您要做的事情的答案。简短的回答是否定的。但是,如果我们知道你在尝试什么,我们可以提出一些建议。你能用这个来澄清你的目标吗?表1中的选择基于另一个没有关系的表的计数,表面上看是毫无意义的…问题中列出的表1.field1和表2.field2之间没有关系…每个人都在大声回答他们假设你想做什么的答案。简短的回答是否定的。但是,如果我们知道你在尝试什么,我们可以提出一些建议。你能用这个来澄清你的目标吗?表1中的选择基于另一个没有关系的表的计数在表面上是毫无意义的…这将起作用,但您假设OP想要什么。此外,如果table2正好有两行,则返回table1中的所有行,或者什么也不返回。您假设OP想要什么。太冒险了。@Brad说你在假设OP想要什么。太冒险了。OP不清楚他们想要什么,他们给出的代码也不起作用,但似乎试图计算表2中的行数。这会起作用,但您假设OP想要什么。此外,如果table2正好有两行,则返回table1中的所有行,或者什么也不返回。您假设OP想要什么。太冒险了。@Brad说你在假设OP想要什么。太冒险了。OP不清楚他们想要什么,他们给出的代码也不起作用,但似乎试图计算表2中的行数。我在我的sql server中编写了代码,当我回来时,你已经发布了我的代码!哈哈,你假设OP想要表2中的行数。布莱德:看看这篇文章的标题,这就是为什么我对他所追求的东西有了相当好的了解。“你为什么不放弃所有的反对票呢?”布拉德说,你假设OP想要在表2中统计行数。嗯,那是没有根据的。OP不清楚他们想要什么,他们给出的代码也不起作用,但似乎试图计算表2中的行数。然而,OP使用了两个表,但是这里的代码只使用了一个表。我想看一个有效的例子。我可以看到“按拥有分组”是如何解决这个问题的。@KM:我已经用一个两表的例子更新了我的回答。如果需要的话,你也可以通过使用部分查询来使用组中的多个列。我在我的sql server中编写了它,当我回来时,你已经发布了我的!哈哈,你假设OP想要表2中的行数。布莱德:看看这篇文章的标题,这就是为什么我对他所追求的东西有了相当好的了解。“你为什么不放弃所有的反对票呢?”布拉德说,你假设OP想要在表2中统计行数。嗯,那是没有根据的。OP不清楚他们想要什么,他们给出的代码也不起作用,但似乎试图计算表2中的行数。然而,OP使用了两个表,但是这里的代码只使用了一个表。我想看一个有效的例子。我可以看到“按拥有分组”是如何解决这个问题的。@KM:我已经用一个两表的例子更新了我的回答。如果需要,也可以使用部分查询来使用组中的多个列。