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

时间:2013-03-11 13:03:04

标签: sql sql-server-ce

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

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

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

但是,对于非标识列,它返回TRUE,对于标识列,返回FALSE!有没有办法在select语句中反转boolean值?

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

1 个答案:

答案 0 :(得分:17)

SQL Server中的克拉(^)是bitwise exclusive OR运算符。

由于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