Выберите только если count == 2 SQL Server 2008 - PullRequest
1 голос
/ 09 декабря 2010

Я хотел бы выбрать только при условии, что другой выбор == 2

, например,

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

это возможно?

Ответы [ 3 ]

2 голосов
/ 09 декабря 2010

Вы должны посмотреть на HAVING CLAUSE SQL GROUP BY.

например

SELECT * FROM TABLE1
WHERE <MYKEY> IN (
   SELECT <MYKEY>
   FROM TABLE2
   GROUP BY <MYKEY> HAVING COUNT(*) = 2 --Better to use > 1
)
2 голосов
/ 09 декабря 2010
select field1 from table1 where (select count(field2) from table2)=2
1 голос
/ 09 декабря 2010

попробуйте:

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 строк)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...