2010-10-18 1 views
29

Je veux créer une vue dans laquelle je choisis quelque chose comme ce qui suit:Comment sélectionner un 1 comme un bit dans une vue sql-server?

select id, name, 1 as active 
from users 

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

Répondre

47

Vous pouvez utiliser l'opérateur CONVERT.

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

CAST ou CONVERT fonctionnera.

4

Oui, vous l'avez lancé à peu:

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

Cela peut aussi être utile pour améliorer les performances lorsque l'on compare à une valeur de bit dans certaines situations:

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

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

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

Est ce que vous voulez probablement faire.

+4

SQL Server n'a pas de constantes True et False. – bobs

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

1 est l'affichage d'un bit vrai. Qu'essayez-vous d'accomplir?

Faire

select CAST('true' AS bit) as active 

retours 1 aussi.

Questions connexes