|
|
1
12
|
|
|
2
7
一个简单的解决方案,它混合了@alexkuznetsov和@andomar的解决方案。
|
|
|
3
4
我看到这篇文章很老,有一些有用的答案,但这是一个非常疯狂的直接方法…
|
|
|
4
3
准备工作:
解决方案:
|
|
|
5
2
可以使用变量并执行“按位或”(
这张照片
以更严格的SQL方式,您可以为每一位创建一个具有一行的表。这个表有31行,因为第32位是负整数。此示例使用递归CTE创建该表:
这将对源表中的任何位进行求和。 |
|
|
6
1
我尝试使用coalesce函数,但它起作用,例如:
|
|
|
7
1
这是另一种选择,没有(欢呼!!!!):
还要考虑一个分组示例:
第一个例子意味着要比用慢。但是,当您将groupby与其他一些数据一起使用时,查询的成本基本相同。 另一种方法是
更糟的是,由于代码重复,可读性更高,执行成本也差不多。 |
|
|
8
0
你在找这样的东西吗? 编辑 :如其他注释所述,此答案基于以下假设:位值表只包含2的幂。我尝试在问题行之间进行阅读,并推断出对内联子查询的使用。
|
|
|
9
0
对我来说,这是最好的解决办法。
|
|
|
10
-1
对于可读和可重用的解决方案,最好的选择是编写一个自定义的clr聚合来执行按位或。有关创建此类型操作的教程,请参见: http://msdn.microsoft.com/en-us/library/91e6taax(VS.80).aspx |