小编典典

SQL CE select语句中的反向布尔值(位)

sql

我正在尝试编写一个从SQL CE数据库获取表信息的查询,准备将其放入c#,稍后再导出为XML。我需要使用布尔值将其中一列命名为“IDENT”(以表示它是否是身份列)。

为此,我正在检查AUTOINC_SEED列是否为空,如下所示:

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

但是,对于非身份列将返回TRUE,对于身份列将返回FALSE!有什么办法可以反转select语句中的布尔值?

编辑:我知道我可以做一个case语句来解决这个特定的问题,但是这让我对在SQL中反转布尔值(位)感到好奇。


阅读 203

收藏
2021-03-23

共1个答案

小编典典

SQL Server中的克拉(^)是按位异或运算符。

由于1 ^ 1等于0和1 ^ 0等于1,因此您可以执行以下操作:

SELECT (1 ^ [YourBitColumn]) as InverseBit

我也没有方便的SQL CE,但是由于SQL CE似乎具有此功能,因此我相信以下查询可以解决问题:

select (1 ^ AUTOINC_SEED) as IDENT from information_schema.columns
2021-03-23