我需要调用我的数据库来查看是否存在parentId = 30的任何用户。 如果有,我想做一个表达。如果没有,我想做另一个。
有时像下面这样。请注意,这只是一个示例,用于解释我想要做的事情。
Select count(*) as Users from user where parentID = 30
When Users > 0
Select * from user where parentID = 30
else
Select * from user
希望问题得到妥善解释。
答案 0 :(得分:1)
这应该有效:
Select * from tbl
where parentID = 30
or ((select count(*) as Users from tbl where parentID = 30) <= 0)
parentid为30并且仅检索该记录,或者没有具有该parentid的记录,因此检索所有记录。请注意,这将适用于SQL Server,Oracle和MySQL。
注意:这是有效的,因为示例中的两个查询都返回相同的列。您需要指定是否期望每个查询中的不同列供实际使用。
更新:由于您使用的是SQL Server,因此您只需将计数存储在变量中,并使用if-else来决定运行哪个查询,而不管查询是什么,如下所示:
declare @count int = 0
select @count = count(*) from user where parentid = 30
if @count > 0
begin
select * from user where parentid = 30
end
else
begin
select * from user
end