Указано выражение не булева типа ... sql server - PullRequest
0 голосов
/ 22 октября 2018
select sp_name, office, comm 
from sperson
where (office,comm) in (select office, min(comm) from sperson group by office);

Это работает в Oracle и MySQL.

1 Ответ

0 голосов
/ 22 октября 2018

Вам нужен подзапрос с корреляцией , и SQL Server будет поддерживать синтаксис:

select sp.*
from sperson sp
where comm = (select min(sp1.comm)
              from sperson sp1
              where sp1.office = sp.office
             );

Однако это также может быть достигнуто с помощью функции row_number() / dense_rank():

select top (1) with ties sp.*
from sperson sp
order by row_number() over (partition by office order by comm);
...