SQL CE select语句中的反向布尔(位)值
Posted
技术标签:
【中文标题】SQL CE select语句中的反向布尔(位)值【英文标题】:Reverse boolean (bit) value in SQL CE select statement 【发布时间】:2013-03-11 13:03:03 【问题描述】:我正在尝试编写一个查询,该查询从SQL CE
数据库中获取表信息,准备好放入 c# 中,然后导出到 XML。我需要将其中一列命名为“IDENT”,并带有一个布尔值(很明显,以表示它是否是标识列)。
为此,我正在检查AUTOINC_SEED列是否为空,如下:
select isnull(AUTOINC_SEED) as IDENT from information_schema.columns
但是,这对于非标识列返回 TRUE,对于标识列返回 FALSE!有什么办法可以反转select语句中的布尔值?
编辑:我知道我可以做一个 case 语句来解决这个特殊问题,但它让我对在 SQL 中反转布尔(位)值感到好奇。
【问题讨论】:
您尝试过我的 SQL Server Compact 脚本 API,可以为您获取所有相关的架构信息吗? @ErikEJ 你能给我一个链接吗? 您可以在exportsqlce.codeplex.com找到它 【参考方案1】: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
【讨论】:
抱歉,刚刚才有机会尝试。是的,克拉起作用了——尽管我确实必须用 0 替换 1,就像select (0 ^ AUTOINC_SEED) as IDENT
一样。与其说我需要帮助,不如说我很好奇。毕竟,它可以通过 case
声明来解决 - 但感谢您回答问题并满足我的好奇心!
看起来 tilda 成功了 (~) ***.com/a/177893/1579626 另见 msdn.microsoft.com/en-us/library/ms173468.aspx以上是关于SQL CE select语句中的反向布尔(位)值的主要内容,如果未能解决你的问题,请参考以下文章