2010-10-18 4 views
29

Ich möchte eine Ansicht erstellen, in dem ich so etwas wie die folgenden Einstellungen wählen:Wie wähle ich eine 1 als ein Bit in einer SQL-Server-Ansicht?

select id, name, 1 as active 
from users 

Allerdings möchte ich das aktive Feld, das ich in der select-Anweisung erschaffe (es existiert nicht in der Tabelle) , um ein bisschen Feld zu sein. Gibt es eine Möglichkeit, dies zu tun?

Antwort

47

Sie können den CONVERT-Operator verwenden.

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

CAST oder CONVERT wird funktionieren.

4

Ja, Sie werfen es zu wenig:

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

Dies kann auch nützlich sein, die Leistung zu verbessern, wenn sie in einigen Situationen zu einem Bitwert Vergleich:

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

(In diesem Beispiel könnte es mache keinen praktischen Unterschied, aber ich habe einen tatsächlichen Unterschied in komplizierteren Abfragen gesehen.)

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

Ist was Sie wollen wahrscheinlich tun.

+4

SQL Server hat keine True und False Konstanten. – bobs

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

1 ist das Display für ein echtes Bit. Was willst du erreichen?

Doing

select CAST('true' AS bit) as active 

kehrt 1 auch.