Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 若表返回0行,则选择另一个查询_Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql 若表返回0行,则选择另一个查询

Sql 若表返回0行,则选择另一个查询,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,因为我的查询有时会返回0行,所以如果它返回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, '

因为我的查询有时会返回0行,所以如果它返回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

您可以使用公共表表达式包装第一个查询,并使用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
)

如果您的查询是由c、vb、f、java等代码执行的,这种任务可以由代码以更简单的方式完成。@Srikanth。您应该提供示例数据、所需结果和逻辑解释。可能有一种更简单的方法来编写逻辑。
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