quinta-feira, setembro 04, 2008

Bitwise em SQL

Por acaso foi uma coisa que nunca tinha feito, mas a sintaxe está bem feita porque até é intuitiva. Imagine-se que se tem a seguinte tabela e os seguintes valores:

Tabela=Teste
Col={8,10,5};

Fazendo:
select * from Teste
where ( 4 & Col ) <> 0

O resultado é igual a {5} pois 0100 & 0101 <> 0

Fazendo:
select * from Teste
where ( 8 & Col ) <> 0

O resultado é igual a {8, 10} pois 1000 & 1000 <> 0, e 1000 & 1010 <> 0

Sem comentários: