我有一条select语句,我想说一下此select语句是否不返回任何行,然后在每个单元格中放入一个”。我该怎么做呢?
听起来您仍然没有获得想要的所有行。真的?我认为@Joe Sefanelli为您的解决方案提供了重要的部分,然后提到您需要将INNER更改为LEFT联接。
因此,您说要显示单位列表中的所有单位。并且,如果没有单位的数据,则显示该单位,并显示不存在的数据的空白。
这是一个可能的解决方案。将您的FROM子句更改为以下内容:
FROM [dbo].[Unit] u LEFT OUTER JOIN ( SELECT * FROM [dbo].[IUA] i JOIN [dbo].[Reports] r ON r.[Report_ID] = i.[Report_ID] JOIN [dbo].[State] s ON i.[St_ID] = s.[St_Id] WHERE r.[Account] = [dbo].[fn_Get_PortalUser_AccountNumber](11-11) AND r.[Rpt_Period] = '2126' AND r.[RptName] = 'tfd' AND r.[Type] = 'h' ) ir ON ir.[Unit_ID] = u.[Unit_ID] LEFT JOIN [dbo].[UnitType] ut ON u.[UnitType] = ut.[UnitType] WHERE u.[Unit] IN (SELECT [VALUE] FROM dbo.udf_GenerateVarcharTableFromStringList(@Units, ',')) ;
进行此更改后,您将获得@Units列表中的单位列表。左外部联接将包括与每个单元关联的数据,但如果没有关联的数据,则不排除单元。