sql - 这个 SQL 语句背后的含义是什么?ISNULL(状态,0)& 128 = 0?
问题描述
我的应用程序中的一些存储过程,使用WHERE
如下条件:
ISNULL(Status,0) & 128 = 0
它究竟是什么意思或它是如何比较的?我了解isnull
条件,但单&
操作员的目的是什么,想知道。任何人都可以建议我吗?
解决方案
以下条件:
ISNULL(Status,0) & 128 = 0
评估Status
(=128) 的第 8 位是否未设置。
使用&
运算符按位AND
计算两个值是否共享相同的位。
在上述情况下,您可以将其分解为:
- 如果是,则使用
Status
或 0的值Status
NULL
- 按位
AND
将此值与 128 AND
如果按位返回,则返回 true0
(因此未设置该位)
顺便说一句,如果设置了位 on Status
,这将返回128
而不是0
.
推荐阅读
- java - Quarkus、Hibernate ORM 和 REST - RESTEASY008200:JSON 绑定反序列化错误:
- tensorflow - 是否可以根据 Keras 中批次中样本输出的差异编写自定义损失函数?
- angular - 如何以 rx 方式在 for 循环内订阅并将发出的值保存到一个数组
- excel - 在 VBA 代码中打开 csv 文件会导致中断模式
- clojure - 尝试快速排序列表并将值返回给新变量
- html - 当我将鼠标悬停在一个元素上时,为什么整个内容框不会改变颜色?左边有空
- c++ - 如何让我的代码等待我扫描我的第二个 RFID?
- javascript - gatsby-source-graphql 和 GraphQL Shopify 管理 API 错误
- r - 自动将列添加到 R 函数中的 data.frame
- algorithm - 谁编写函数来生成坐标