Подтвердить что ты не робот

Как выбрать 1 как бит в представлении sql-сервера?

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

select id, name, 1 as active
from users

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Выполнение

select CAST('true' AS bit) as active

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

Ответ 3

Да, вы добавили его в бит:

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

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

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

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

Ответ 4

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

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