如果 table returns 0 行则 select 另一个查询

If table returns 0 rows then select another query

因为我的查询有时会 return 0 行,所以我需要 select 另一个语句,如果它 return 是 0 行。

select MR.NAME as NAMES,Isnull(cast(sum(MTTR/Month(getdate())) as decimal(18,2)),0) as YTDCURRENTYEAR from #Meantimeresult as MR 
 where YEAR(CONVERT(DATE, '01-' + Month)) = YEAR(GETDATE()) AND MONTH(CONVERT(DATE, '01-' + Month)) <= MONTH(GETDATE()) 
    group by MR.NAMES

第二条语句是

Select NAME='' ,YTDCURRENTYEAR=0

您可以使用通用 table 表达式包装您的第一个查询并使用 union all:

WITH CTE AS
(
    SELECT MR.NAME as NAMES, Isnull(cast(sum(MTTR/Month(getdate())) as decimal(18,2)),0) as YTDCURRENTYEAR 
    FROM #Meantimeresult as MR 
    WHERE YEAR(CONVERT(DATE, '01-' + Month)) = YEAR(GETDATE()) 
    AND MONTH(CONVERT(DATE, '01-' + Month)) <= MONTH(GETDATE()) 
    GROUP BY MR.NAMES
)

SELECT Names, YTDCURRENTYEAR
FROM CTE
UNION ALL
SELECT NAME='' ,YTDCURRENTYEAR=0
WHERE NOT EXISTS(
    SELECT 1 
    FROM CTE
)
IF NOT EXISTS (YOUR FIRST QUERY)
   BEGIN
      YOUR SECOND QUERY
   END