有没有一种聪明的方法来计算有多少变量等于某个目标值(在 SQL Server 中)?
例如,如果我有:
declare @a int = 1;
declare @b int = 2;
declare @c int = 1;
declare @target int = 1;
然后我想做多少个@a, @b, @c
eqauls @target
。
在命令式语言中,很容易创建一个内联变量数组,然后计算它们——例如在 JS 中:
var a = 1, b = 2, c = 2, target = 1;
if ([a, b, c].filter(item => item == target).length == 1)
// do something
该“内联数组”在 SQL 中的等价物将是一个单列表,但这需要 using DECLARE TABLE
,我想避免这种情况。
在 SQL 中是否有类似的简单方法来进行此类计数?
请注意,我对“在不声明的情况下创建表”不太感兴趣——我真正关心的是根据目标变量计算变量,所以如果可以在完全不使用表的情况下完成,那就更好了。
这个解决方案怎么样?