TSQL(SSMS)仅有条件地显示查询结果

TSQL(SSMS)仅有条件地显示查询结果,tsql,sql-server-2008-r2,ssms,Tsql,Sql Server 2008 R2,Ssms,是否可以有条件地在TSQL(SSMS)窗口中的查询结果窗口中显示 例如,显示列标题和结果: 从[ourDatabase].[dbo].[ourTable]中选择COUNT(1)作为ourCount 仅当大于0时 注意:我们使用SQL Server 2008,r-2 这是在具有许多结果的更大查询系统的上下文中进行的。如果这个查询的值为零时,我不想把结果弄得乱七八糟。当然,这个概念可以推广到其他情况 因此,我正在监视查询输出,人们可以将结果视为对自己的“警告”(非正式) 这将把结果推送到一个变量中,

是否可以有条件地在TSQL(SSMS)窗口中的查询结果窗口中显示

例如,显示列标题和结果:

从[ourDatabase].[dbo].[ourTable]中选择COUNT(1)作为ourCount

仅当大于0时

注意:我们使用SQL Server 2008,r-2

这是在具有许多结果的更大查询系统的上下文中进行的。如果这个查询的值为零时,我不想把结果弄得乱七八糟。当然,这个概念可以推广到其他情况


因此,我正在监视查询输出,人们可以将结果视为对自己的“警告”(非正式)

这将把结果推送到一个变量中,然后仅当它大于零时才显示,您也可以使用PRINT等

DECLARE @Count INT;
SELECT @Count = COUNT(1) AS ourCount FROM [ourDatabase].[dbo].[ourTable];
IF @Count > 0
BEGIN
    SELECT @Count;
END;

如果答案是这将把结果推到一个变量中,然后仅当它大于零时才显示它,您还可以使用PRINT等

DECLARE @Count INT;
SELECT @Count = COUNT(1) AS ourCount FROM [ourDatabase].[dbo].[ourTable];
IF @Count > 0
BEGIN
    SELECT @Count;
END;

如果答案是SSMS只是一个客户端工具。它不会影响查询的执行方式或生成的内容。至于筛选数据,这是通过SELECT语句的
WHERE
子句完成的,如果您想通过聚合进行筛选,则可以使用
HAVING()
子句完成的。我认为这是一个简单的方法。你为什么要完成你要求做的事情?就其本身而言,这没有多大意义。Richard的回答可以为您做到这一点,但出于故障排除的目的,您可能不想知道一个表是空的,特别是如果您希望它不会是空的话?我知道杂乱的东西,但有一个一致的输出也有可读性的价值。听起来你已经想清楚了!运行它。@JosephDoggie有比在SSMS中执行脚本更好的监视选项。SSMS本身有多个监控报告和仪表盘。SQL Operations Studio(现在称为Azure Data Studio)允许您非常轻松地将查询转换为图形和仪表板。例如,检查。已经有几个插件可用于监控,其中一个插件显示通过运行Brent Ozar的First Responder KitSSMS收集的统计数据,而KitSSMS只是一个客户端工具。它不会影响查询的执行方式或生成的内容。至于筛选数据,这是通过SELECT语句的
WHERE
子句完成的,如果您想通过聚合进行筛选,则可以使用
HAVING()
子句完成的。我认为这是一个简单的方法。你为什么要完成你要求做的事情?就其本身而言,这没有多大意义。Richard的回答可以为您做到这一点,但出于故障排除的目的,您可能不想知道一个表是空的,特别是如果您希望它不会是空的话?我知道杂乱的东西,但有一个一致的输出也有可读性的价值。听起来你已经想清楚了!运行它。@JosephDoggie有比在SSMS中执行脚本更好的监视选项。SSMS本身有多个监控报告和仪表盘。SQL Operations Studio(现在称为Azure Data Studio)允许您非常轻松地将查询转换为图形和仪表板。例如,检查。已经有几个插件可用于监控,其中一个插件显示通过运行Brent Ozar的First Responder KitYes it works收集的统计数据。对于那些不属于C语言家族的人,“;”在declare语句中是可选的。计数(1)真的比计数(*)更有效吗?我想是的,这当然是我使用的,但我觉得它不太可读,关于这样一个小问题有很多话要说!是的,它有效。对于那些不属于C语言家族的人,“;”在declare语句中是可选的。计数(1)真的比计数(*)更有效吗?我想是的,这当然是我使用的,但我觉得它不太可读,关于这样一个小问题有很多话要说!
SET NOCOUNT OFF;