web-dev-qa-db-fra.com

Comment sélectionner un 1 comme bit dans une vue SQL Server?

Je veux créer une vue dans laquelle je sélectionne quelque chose comme ceci:

select id, name, 1 as active
from users

Cependant, je veux que le champ actif, que je crée dans l'instruction select (il n'existe pas dans le tableau), soit un champ de bits. Y a-t-il un moyen de faire cela?

43
dmr

Vous pouvez utiliser l'opérateur CONVERT.

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

CAST ou CONVERT fonctionnera.

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

1 est l'affichage d'un vrai bit. Quels sont vos objectifs.

Faire

select CAST('true' AS bit) as active

retour 1 aussi.

12
Dustin Laine

Oui, vous l'avez mordu:

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

Cela peut également être utile pour améliorer les performances lors de la comparaison avec une valeur de bit dans certaines situations:

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

(Dans cet exemple, cela pourrait ne faire aucune différence pratique, mais j'ai vu une différence réelle dans les requêtes plus compliquées.)

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

C'est ce que vous voulez probablement faire.

3
msarchet