如果 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
因为我的查询有时会 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