web-dev-qa-db-ja.com

SQLサーバービューでビットとして1を選択するにはどうすればよいですか?

次のようなものを選択するビューを作成します。

select id, name, 1 as active
from users

ただし、selectステートメントで作成しているアクティブなフィールド(テーブルには存在しない)をビットフィールドにしたいのですが。これを行う方法はありますか?

43
dmr

CONVERT演算子を使用できます。

SELECT id, name, CONVERT(bit, 1) AS active
FROM users

CASTまたはCONVERTが機能します。

70
bobs
select id, name, CAST(1 AS bit) as active
from users

1は、真のビットの表示です。あなたが達成しようとしていることは何ですか。

している

select CAST('true' AS bit) as active

戻り値 1も。

12
Dustin Laine

はい、あなたはそれをビットにキャストします:

select id, name, cast(1 as bit) as active
from users

これは、状況によってはビット値と比較するときにパフォーマンスを向上させるのにも役立ちます。

select id, name
from users
where active = cast(1 as bit)

(この例では、実際的な違いはないかもしれませんが、より複雑なクエリで実際の違いを見てきました。)

6
Guffa
select id, name, Convert(bit, 1) as active
from users

あなたがおそらくやりたいことです。

3
msarchet