Sql 如果在“选择”中嵌套

Sql 如果在“选择”中嵌套,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何组合这两个查询 select e.UserId, count(*) as [Registrations], min(uas.UserId), min(uas.[TimeStamp]) from Ev as e left join UAS as uas on e.UserId = uas.UserId where e.EventTypeId = 3 and e.Value is not null group by e.UserId having count(*) >= 10

如何组合这两个查询

select e.UserId, count(*) as [Registrations], min(uas.UserId), min(uas.[TimeStamp])
from Ev as e 
    left join UAS as uas on e.UserId = uas.UserId
where e.EventTypeId = 3 and e.Value is not null 
group by e.UserId 
having count(*) >= 10

if not exists (select * from Ev as e left join UAS as uas
                   on e.UserId = uas.UserId where uas.UserId = e.UserId)
begin
    insert UAS values (12, '2013-05-31 15:54:14.963')
end;

如果UAS表中不存在该用户ID,请插入它。

您可以在不存在的地方使用
重写下面的部分

if not exists (select * from Ev as e left join UAS as uas
                   on e.UserId = uas.UserId where uas.UserId = e.UserId)
begin
    insert UAS values (12, '2013-05-31 15:54:14.963')
end;


第一个查询根据某些条件选择数据,第二个查询选择插入。您的潜在“组合”查询应该如何操作?如果在第一次查询的输出中没有结果,它是真的应该插入一些东西还是应该选择一些“伪”值?@AndyKorneyev我知道,因为有人问。我想在还没有这样的值时插入。不能以这种方式组合插入和选择查询。无论如何,它应该是单独的查询。@AndyKorneyev没有其他解决方案吗?无法将选择查询与插入查询结合起来,而且很不清楚如果可以,您认为您将实现什么。第一个SELECT查询与第二个查询中的INSERT无关。这可能是XY问题。嗯。。。应该如何解决OP的任务“将某个插入查询与另一个选择查询组合”?OP基本上是检查连接的查询是否不存在记录,然后插入一些数据。可以使用
insert。。选择
construct。对吧???据我所知,他的问题-他想将这个插入与问题中的第一个select查询(有group by的查询)结合起来。也许我错了——但他在评论中没有透露任何信息。OP不是说如果UAS表中不存在该用户ID,我就希望插入它吗??是的,是关于第二个问题。但是,问题中第一个(使用GROUPBY)查询存在的原因是什么?在这种情况下,它与这个问题有什么关系?也许你能从作品中找到这个秘密
insert into UAS 
select 12, '2013-05-31 15:54:14.963'
from Test // Test is a dummy dual table
where not exists (
select 1 from Ev as e 
left join UAS as uas
on e.UserId = uas.UserId where uas.UserId = e.UserId )