如何从 SQL 结果集中删除空白行

How to remove blank rows from SQL result set

我有这样的查询:

SELECT DISTINCT 
    [F_Exhibitor_Name] 
FROM 
    [V_ExhibitorLocation] 
WHERE 
    F_ExhibitionCode ='10996' 
  AND 
    [F_Exhibitor_Name] IS NOT NULL
ORDER BY 
    F_Exhibitor_Name

我的第一行是空白,导致代码出错。我当前的结果集如下所示:

在SQL服务器中,一个null和一个空字符串('')是不一样的。如果您要排除两者,则应明确检查两者:

SELECT   DISTINCT [F_Exhibitor_Name]
FROM     [V_ExhibitorLocation] 
WHERE    [F_ExhibitionCode] = '10996' AND
         [F_Exhibitor_Name] IS NOT NULL AND
         [F_Exhibitor_Name] <> ''
ORDER BY [F_Exhibitor_Name]

我可以建议一个混合 IS NOT NULL<> '' 的技巧,如下所示:

SELECT   DISTINCT 
    F_Exhibitor_Name
FROM     
    V_ExhibitorLocation
WHERE    
    F_ExhibitionCode = '10996' 
  AND
    F_Exhibitor_Name > ''   --or ISNULL(F_Exhibitor_Name, '') <> ''
ORDER BY 
    F_Exhibitor_Name