&är den bitvisa logiken och operatorn - Den utför operationen på 2 heltalsvärden.
WHERE (sc.Attributes & 1) = 0
Ovanstående kod kontrollerar om sc.Attributes är ett jämnt tal. Vilket är samma sak som att säga att den första biten inte är inställd.
På grund av namnet på kolumnen dock:"Attribut", så är "1"-värdet förmodligen bara någon flagga som har någon yttre betydelse.
Det är vanligt att använda 1 binär siffra för varje flagga som lagras i ett nummer för attribut. Så för att testa för den första biten använder du sc.Attributes&1, för att testa för den andra använder du sc.Attributes&2, för att testa för den tredje använder du sc.Attributes&4, för att testa för den fjärde använder du sc.Attributes&8, ...
Delen =0 testar för att se om den första biten INTE är inställd.
Några binära exempel:(==för att visa resultatet av operationen)
//Check if the first bit is set, same as sc.Attributes&1
11111111 & 00000001 == 1
11111110 & 00000001 == 0
00000001 & 00000001 == 1
//Check if the third bit is set, same as sc.Attributes&4
11111111 & 00000100 == 1
11111011 & 00000100 == 0
00000100 & 00000100 == 1