当count = 0时sql查询返回另一个select

时间:2015-11-30 21:48:26

标签: sql subquery

我有这个查询返回一组数据。我有一个问题。我需要检查返回的数据集是否有行。

如果它返回0行,我需要选择具有不同条件的相同数据。 如果它返回超过0行,我保留第一组数据中的数据。我放置了一个类似伪代码的c#,我无法确定如何返回我的数据。

  declare @Nousager as int = 3
    DECLARE @tableVerification AS TABLE
        (
            id int,
            Nom  VARCHAR(50)
        )
  INSERT INTO @tableVerification
  select distinct c.id,c.Nom from Categorie_Equipement c
  join Utilisateurs u on u.id = @Nousager
  join Utilisateurs_Groupe ug on ug.NoUsager =  u.id
  join Groupe_Equipements ge on ge.noGroupe = ug.noGroupe



     --if (tableVerification.Count == 0){
    select id,Nom from Categorie_Equipement c
  --}else keep @tableVerification

1 个答案:

答案 0 :(得分:2)

您可以使用If Not Exists进行此检查,以查看该表是否已填充。如果它没有(意味着第一个查询没有返回任何行),则用第二个查询填充表。

Declare @Nousager           As Int = 3
Declare @tableVerification  As Table
(
    id  Int,
    Nom Varchar (50)
)

Insert Into @tableVerification
Select  Distinct c.id, c.Nom 
From    Categorie_Equipement    c
Join    Utilisateurs            u   on  u.id = @Nousager
Join    Utilisateurs_Groupe     ug  on  ug.NoUsager = u.id
Join    Groupe_Equipements      ge  on  ge.noGroupe = ug.noGroupe

If Not Exists (Select * From @tableVerification)
Begin
    Insert  @tableVerification
    Select  id, Nom 
    From    Categorie_Equipement
End