我有一张这样的表:
Date Bob Joe Will
1/1/15 1 0 1
1/2/15 0 0 1
1/3/15 0 0 0
1/4/15 1 1 1
Run Code Online (Sandbox Code Playgroud)
首选方案
有了一个说法,我想回到仅列其中SUM(Column) > 0
例如:
SELECT SUM(Bob) as Robert, SUM(Joe) as Joseph, SUM(Will) as William
FROM table
WHERE Date BETWEEN '1/1/15' and '1/3/15'
Run Code Online (Sandbox Code Playgroud)
我希望我的结果看起来像这样:
Robert William
1 2
Run Code Online (Sandbox Code Playgroud)
换句话说,因为SUM(Joe) = 0
对于我选择的日期范围,我不希望该列出Joseph
现在结果集中。会导致Joseph
不出现的魔法是什么?
替代解决方案
如果返回的数据略有不同,我可以处理它,所以我考虑编写一个表函数来返回一个 2 列表,如下所示:
Name Value
Robert 1
William 2
Run Code Online (Sandbox Code Playgroud)
我的想法是函数代码看起来类似于:
--Declare table here
IF SELECT SUM(Bob) > 0 …
Run Code Online (Sandbox Code Playgroud) 我们有两台运行 SQL Server 2019 (15.0.x) 的服务器。
当我们进行完整数据库备份(通过右键单击数据库,然后单击“任务”,然后单击“备份”)时,是否包括备份所有项目,然后Programmability
将其还原到其他服务器?