sql:子查询不为空

JP *_*ons 6 sql sql-server

我有以下 sql 查询,我想过滤别名图像文件为空的结果,但我无法让它工作。这是一个基本的 sql...对此感到抱歉!

SELECT Categorie.CategorieID, Categorie.Highlight, CategorieTaal.CategorieNaam,
        (SELECT TOP (1) ImageFile
                FROM Artikel WHERE (CategorieID = Categorie.CategorieID) 
                     AND (Onzichtbaar = 0) 
                     AND (NietBestelbaar = 0) 
                     AND (Voorraad = - 1000 OR Voorraad > LevertijdDrempel)
                     ORDER BY Volgnummer, ArtikelID DESC) AS 'imagefile' 
        FROM Categorie INNER JOIN 
                     CategorieTaal ON 
                     Categorie.CategorieID = CategorieTaal.CategorieID  
        WHERE (Categorie.CategorieGroepID = @catgroepid) 
               AND (Categorie.Onzichtbaar = 0) 
               AND (CategorieTaal.TaalCode = @tc) 
       ORDER BY Categorie.Volgnummer, CategorieTaal.CategorieNaam
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 1

你可能想尝试这个:

SELECT Categorie.CategorieID, Categorie.Highlight, CategorieTaal.CategorieNaam,
FROM Categorie 
INNER JOIN 
    CategorieTaal ON
    Categorie.CategorieID = CategorieTaal.CategorieID  
WHERE (Categorie.CategorieGroepID = @catgroepid) 
    AND (Categorie.Onzichtbaar = 0) 
    AND (CategorieTaal.TaalCode = @tc) 
    AND NOT EXISTS (SELECT 1 ImageFile
        FROM Artikel WHERE (CategorieID = Categorie.CategorieID) 
            AND (Onzichtbaar = 0) 
            AND (NietBestelbaar = 0) 
            AND (Voorraad = - 1000 OR Voorraad > LevertijdDrempel))
ORDER BY Categorie.Volgnummer, CategorieTaal.CategorieNaam
Run Code Online (Sandbox Code Playgroud)