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?
Vous pouvez utiliser l'opérateur CONVERT.
SELECT id, name, CONVERT(bit, 1) AS active
FROM users
CAST ou CONVERT fonctionnera.
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.
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.)
select id, name, Convert(bit, 1) as active
from users
C'est ce que vous voulez probablement faire.