46 votes

Comment puis-je sélectionner un 1 en tant que bit dans une vue SQL Server ?

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

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 la table), soit un champ bit. Y a-t-il un moyen de le faire ?

73voto

bobs Points 12893

Vous pouvez utiliser l'opérateur CONVERT.

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

CAST ou CONVERT fonctionneront.

13voto

Dustin Laine Points 22815
sélectionner id, nom, CAST(1 AS bit) comme actif
de utilisateurs

1 est l'affichage d'un bit vrai. Que cherchez-vous à atteindre.

En faisant

sélectionner CAST('true' AS bit) comme actif

retourne aussi 1.

6voto

Guffa Points 308133

Oui, vous le convertissez en bit:

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 à une valeur 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 constaté une réelle différence dans des requêtes plus complexes.)

3voto

msarchet Points 9059
sélectionner id, nom, Convert(bit, 1) en tant que actif
de utilisateurs

C'est probablement ce que vous voulez faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X