sql - 一个简单的 sql 查询需要解释它是如何给出输出的?
问题描述
我从某人那里得到了这个查询,我在 SQL Server 2012 中查询了这个
Select 20 | 25 as test
开/关 : 29
select 20 & 25 as test
生产/生产:16
select 10 | 25 as test
开/关:27
select 10 & 25 as test
开/关 : 8
我需要对此输出进行逐步解释,任何人都可以帮助我。
解决方案
- 与运算符为 OR 的
binary calculators
SQL Serverdoes not add
值不同,它使用pipe character
(|) 表示按位 OR 运算符。如果一位或两位为 1,则返回 1 1
如果两个位都是AND,则返回1
。任何一个位都是0
它返回0
您正在寻找的分步说明
选择 20 | 25 作为测试<-- 我们将首先为这个做
首先它将这些值转换为二进制,即
- 20 = 10100
- 25 = 11001
现在,如果一个或两个位为 1,则返回 1,否则返回 0。
考虑到这一点,结果是11101,即29
选择 20 和 25 作为测试 <-- 现在让我们看看这个
转换为二进制 -
- 20 = 10100
- 25 = 11001
& 如果两个位都是 1 则返回 1 否则返回 0
据此,结果是10000,即16
推荐阅读
- mysql - 如何在 MySQL 上获取唯一(反之亦然)字段
- automation - 空手道 UI - 如何等到某些元素消失?就像在 selenium 中一样,我们有元素可见性
- javascript - 我必须添加什么 CSS 来格式化聊天应用程序?
- openedge - 如何访问控制?
- angular - 使用 *ngFor 构建嵌套的 Angular Material MatMenu 出现错误
- c# - Visual Studio 2012“Visual Studio Gallery”无法建立连接”,“没有端点监听”
- laravel - 用 Laravel 中集合中的值替换字符串
- javascript - JavaScript 应用程序错误:在另一个函数中调用一个函数会引发“超出最大调用堆栈大小”错误
- office-js - 如何在新电子邮件中写入提取的电子邮件标题
- excel - 对于每个两次或?