2010-10-18 12 views
29

Chcę utworzyć widok, w którym mogę wybrać coś jak następuje:Jak wybrać 1 jako bit w widoku sql-server?

select id, name, 1 as active 
from users 

Jednakże chcę aktywne pole, które tworzę w select (nie istnieje w tabeli) , być trochę polem. Czy jest jakiś sposób na zrobienie tego?

Odpowiedz

47

Możesz użyć operatora CONVERT.

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

zadziała CAST lub CONVERT.

4

Tak, rzucisz go do bitów:

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

To może być również przydatna w celu zwiększenia wydajności przy porównywaniu do wartości bitu w pewnych sytuacjach:

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

(w tym przykładzie to może nie ma praktycznej różnicy, ale widzę faktyczną różnicę w bardziej skomplikowanych zapytaniach.)

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

Czy to prawdopodobnie chcesz to zrobić.

+4

SQL Server nie ma stałych ani stałych ani stałych. – bobs

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

1 to wyświetlacz dla prawdziwego bitu. Jakie są twoje próby osiągnięcia.

Doing

select CAST('true' AS bit) as active 

powraca 1 również.