Ответ 1
Вы можете использовать оператор CONVERT.
SELECT id, name, CONVERT(bit, 1) AS active
FROM users
CAST или CONVERT будут работать.
Я хочу создать представление, в котором я выбираю что-то вроде следующего:
select id, name, 1 as active
from users
Тем не менее, я хочу, чтобы активное поле, которое я создаю в инструкции select (оно не существует в таблице), является битовым полем. Есть ли способ сделать это?
Вы можете использовать оператор CONVERT.
SELECT id, name, CONVERT(bit, 1) AS active
FROM users
CAST или CONVERT будут работать.
select id, name, CAST(1 AS bit) as active
from users
1
- это отображение для истинного бита. Чего вы пытаетесь достичь.
Выполнение
select CAST('true' AS bit) as active
также возвращает 1
.
Да, вы добавили его в бит:
select id, name, cast(1 as bit) as active
from users
Это также может быть полезно для повышения производительности при сравнении с битовым значением в некоторых ситуациях:
select id, name
from users
where active = cast(1 as bit)
(В этом примере это может не иметь практических различий, но я видел реальную разницу в более сложных запросах.)
select id, name, Convert(bit, 1) as active
from users
Это то, что вы, вероятно, хотите сделать.