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

Mik*_*ter 7 sql sql-server-ce

我正在尝试编写一个查询,从SQL CE数据库获取表信息,准备放入c#,稍后导出到XML.我需要一个名为'IDENT'的列,其中包含一个布尔值(显然表示它是否是标识列).

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

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

但是,对于非标识列,它返回TRUE,对于标识列,返回FALSE!有没有办法扭转select语句中的布尔值?

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

Lit*_*les 17

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

因为1 ^ 1等于0,1 ^ 0等于1,你可以这样做:

SELECT (1 ^ [YourBitColumn]) as InverseBit
Run Code Online (Sandbox Code Playgroud)

我也没有SQL CE方便,但由于SQL CE似乎有这个,我相信以下查询应该可以解决这个问题:

select (1 ^ AUTOINC_SEED) as IDENT from information_schema.columns
Run Code Online (Sandbox Code Playgroud)