Как выбрать 1 как бит в представлении sql-сервера? - PullRequest
35 голосов
/ 19 октября 2010

Я хочу создать представление, в котором я выбираю что-то вроде следующего:

select id, name, 1 as active
from users

Однако я хочу активное поле, которое я создаю в операторе выбора (оно не существует втаблица), чтобы быть битовым полем.Есть ли способ сделать это?

Ответы [ 4 ]

57 голосов
/ 19 октября 2010

Вы можете использовать оператор CONVERT.

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

CAST или CONVERT будут работать.

10 голосов
/ 19 октября 2010
select id, name, CAST(1 AS bit) as active
from users

1 - отображение истинного бита. Чего вы пытаетесь достичь.

делает

select CAST('true' AS bit) as active

возвращает 1 также.

4 голосов
/ 19 октября 2010

Да, вы приводите его к битам:

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

Это также может быть полезно для повышения производительности при сравнении со значением бита в некоторых ситуациях:

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

(В этомНапример, это может не иметь никакого практического значения, но я видел реальную разницу в более сложных запросах.)

2 голосов
/ 19 октября 2010
select id, name, Convert(bit, 1) as active
from users

Это то, что вы, вероятно, хотите сделать.

...