try 执行单个布尔NOT操作时,在MS SQL Server 2005下,以下块似乎不起作用

DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = NOT @MyBoolean;
SELECT @MyBoolean;

相反,我越来越成功

DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = 1 - @MyBoolean;
SELECT @MyBoolean;

然而,用这种方式来表达像否定这样简单的东西,似乎有点扭曲.

我错过什么了吗?

推荐答案

使用~运算符:

DECLARE @MyBoolean bit
SET @MyBoolean = 0
SET @MyBoolean = ~@MyBoolean
SELECT @MyBoolean

Sql相关问答推荐

从列的不同值创建列

使用SQL旋转表的列(Snowflake)

连接三个表的正确方式是什么?在这三个表中,可以显示在一个表上的行将在其他表中显示结果

防止ActiveRecord迁移在db/structure.sql中进行巨大更改

如何用客户名称计算sum(dr)和sum(cr)

根据Rails活动记录中时间戳/日期时间的时间部分从PostgreSQL中提取记录

IF NOT EXISTS子查询的性能瓶颈

在xml.Modify方法中使用子字符串和可能的替代方法

获取分布在同一行的列中的出现次数

MySQL中的递归查询邻接表深度优先?

仅当 SQL Server 中的表为开时,才在存储过程中使用更改跟踪

统计重复记录的总数

如何解释 SQL Server 中的 Foxpro 语法?

SQL 查询是否返回列表中仅包含某些值而不包含其他值的行?

SQL Server中使用min()和max()从选定的特定值id表中删除不必要的时间

如何根据与 BigQuery 中另一个表的匹配更新一个表中的列?

计算 PostgreSQL 中的平均会话长度

如何将多行的查询结果合并为一行

当没有任何行存在时,将一个表中的行插入到另一个表中的更好方法

按 15 分钟递增计数分组,包括 0 计数