<bdo id='0kgyL'></bdo><ul id='0kgyL'></ul>

    1. <small id='0kgyL'></small><noframes id='0kgyL'>

      <tfoot id='0kgyL'></tfoot>

      <i id='0kgyL'><tr id='0kgyL'><dt id='0kgyL'><q id='0kgyL'><span id='0kgyL'><b id='0kgyL'><form id='0kgyL'><ins id='0kgyL'></ins><ul id='0kgyL'></ul><sub id='0kgyL'></sub></form><legend id='0kgyL'></legend><bdo id='0kgyL'><pre id='0kgyL'><center id='0kgyL'></center></pre></bdo></b><th id='0kgyL'></th></span></q></dt></tr></i><div id='0kgyL'><tfoot id='0kgyL'></tfoot><dl id='0kgyL'><fieldset id='0kgyL'></fieldset></dl></div>
        <legend id='0kgyL'><style id='0kgyL'><dir id='0kgyL'><q id='0kgyL'></q></dir></style></legend>
      1. 在子查询中聚合按位或

        时间:2023-10-10
          <tbody id='ZBgcT'></tbody>

          <tfoot id='ZBgcT'></tfoot>

          <legend id='ZBgcT'><style id='ZBgcT'><dir id='ZBgcT'><q id='ZBgcT'></q></dir></style></legend>

                • <bdo id='ZBgcT'></bdo><ul id='ZBgcT'></ul>

                  <small id='ZBgcT'></small><noframes id='ZBgcT'>

                • <i id='ZBgcT'><tr id='ZBgcT'><dt id='ZBgcT'><q id='ZBgcT'><span id='ZBgcT'><b id='ZBgcT'><form id='ZBgcT'><ins id='ZBgcT'></ins><ul id='ZBgcT'></ul><sub id='ZBgcT'></sub></form><legend id='ZBgcT'></legend><bdo id='ZBgcT'><pre id='ZBgcT'><center id='ZBgcT'></center></pre></bdo></b><th id='ZBgcT'></th></span></q></dt></tr></i><div id='ZBgcT'><tfoot id='ZBgcT'></tfoot><dl id='ZBgcT'><fieldset id='ZBgcT'></fieldset></dl></div>

                • 本文介绍了在子查询中聚合按位或的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  给定下表:

                  CREATE TABLE BitValues ( n int )

                  是否可以为子查询中的所有行计算n的按位或??例如,如果 BitValues 包含这 4 行:

                  <前>+---+|| |+---+|1 ||2 ||4 ||3 |+---+

                  我希望子查询返回 7.有没有办法在不创建 UDF 的情况下内联执行此操作?

                  解决方案

                  WITH BitsAS ( 选择 1 AS 位掩码联合所有选择 2联合所有选择 4联合所有选择 8联合所有选择 16)SELECT SUM(DISTINCT BitMask)从 ( 选择 1 作为 n联合所有选择 2联合所有选择 3联合所有选择 4联合所有选择 5联合所有选择 6) AS tJOIN Bits ON t.n &Bits.BitMask >0

                  Given the following table:

                  CREATE TABLE BitValues ( n int )
                  

                  Is it possible to compute the bitwise-OR of n for all rows within a subquery? For example, if BitValues contains these 4 rows:

                  +---+
                  | n |
                  +---+
                  | 1 |
                  | 2 |
                  | 4 |
                  | 3 |
                  +---+
                  

                  I would expect the subquery to return 7. Is there a way to do this inline, without creating a UDF?

                  解决方案

                  WITH    Bits
                            AS ( SELECT   1 AS BitMask
                                 UNION ALL
                                 SELECT   2
                                 UNION ALL
                                 SELECT   4
                                 UNION ALL
                                 SELECT   8
                                 UNION ALL
                                 SELECT   16
                               )
                      SELECT  SUM(DISTINCT BitMask)
                      FROM    ( SELECT    1 AS n
                                UNION ALL
                                SELECT    2
                                UNION ALL
                                SELECT    3
                                UNION ALL
                                SELECT    4
                                UNION ALL
                                SELECT    5
                                UNION ALL
                                SELECT    6
                              ) AS t
                              JOIN Bits ON t.n & Bits.BitMask > 0
                  

                  这篇关于在子查询中聚合按位或的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:SQL 糟糕的存储过程执行计划性能——参数嗅探 下一篇:计算 UTF8 字符串的 MD5 哈希值

                  相关文章

                  • <bdo id='1nHnq'></bdo><ul id='1nHnq'></ul>
                • <i id='1nHnq'><tr id='1nHnq'><dt id='1nHnq'><q id='1nHnq'><span id='1nHnq'><b id='1nHnq'><form id='1nHnq'><ins id='1nHnq'></ins><ul id='1nHnq'></ul><sub id='1nHnq'></sub></form><legend id='1nHnq'></legend><bdo id='1nHnq'><pre id='1nHnq'><center id='1nHnq'></center></pre></bdo></b><th id='1nHnq'></th></span></q></dt></tr></i><div id='1nHnq'><tfoot id='1nHnq'></tfoot><dl id='1nHnq'><fieldset id='1nHnq'></fieldset></dl></div>

                  <small id='1nHnq'></small><noframes id='1nHnq'>

                  <tfoot id='1nHnq'></tfoot>

                  1. <legend id='1nHnq'><style id='1nHnq'><dir id='1nHnq'><q id='1nHnq'></q></dir></style></legend>