8

SQL CEデータベースからテーブル情報を取得し、後でXMLにエクスポートするためにc#に入れる準備ができているクエリを作成しようとしています。ブール値を持つ「IDENT」という名前の列の1つが必要です(明らかに、それがID列であるかどうかを表すため)。

このために、次のようにAUTOINC_SEED列がnullかどうかを確認しています。

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

ただし、これは非ID列の場合はTRUEを返し、ID列の場合はFALSEを返します。selectステートメント内のブール値を逆にする方法はありますか?

編集:この特定の問題を解決するためにcaseステートメントを実行できることは知っていますが、SQLでブール(ビット)値を反転することに興味がありました。

4

1 に答える 1

23

SQL Serverのカラット(^)は、ビット単位の排他的論理和演算子です。

1 ^ 10に等しく、1に等しいので1 ^ 0、次のことができます。

SELECT (1 ^ [YourBitColumn]) as InverseBit

私もSQLCEを手元に持っていませんが、SQL CEにはこれがあるように見えるので、次のクエリでうまくいくと思います。

select (1 ^ AUTOINC_SEED) as IDENT from information_schema.columns
于 2013-03-11T13:52:37.307 に答える