sql 当计数 = 0 时查询 return 另一个 select

sql query when count = 0 return another select

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

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

  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

您可以使用 If Not Exists 检查 table 是否已填充。如果没有(意味着第一个查询没有返回任何行)用第二个查询填充 table。

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