What is the meaning of & in where clause
It's a bitwise and operator.

See the documentation here.

Wikipedia goes into lots of detail on bitwise operations.

Logically, the query you give:

select id, name 
from test 
where num &amp; 1 = 1; 


... will only return odd numbers, due to the lower bit in any integer always being 1 when a number is odd.