Re: How do i extract a certain bit from a bigint column

From: Mike Rylander <miker(at)purplefrog(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Cc: Mats Sjöberg <mats(dot)sjoberg(at)cybernetics(dot)se>
Subject: Re: How do i extract a certain bit from a bigint column
Date: 2004-05-12 12:17:39
Message-ID: 200405120817.39593.miker@purplefrog.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Wednesday 12 May 2004 07:05 am, Mats Sjöberg wrote:
> Hello everyone
> In a table i have a column status of type bigint.
> I need to create a view of the table including all rows with bit 4 set
> (value 8).
> At the same time i need to exclude excludig all rows with bit 2 set.
>
> What is the syntax to extract those bits?
> I have tested get_bit(string, offset) but this requires a string, and not a
> bigint.
> Is there a function to

The easiest way is to test for a bit using bitwise and:

SELECT * FROM table WHERE (status & 2::BIGINT) <> 0 AND (status & 8::BIGINT) =
0;

-miker

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2004-05-12 12:55:47 Re: How do i extract a certain bit from a bigint column
Previous Message Mats Sjöberg 2004-05-12 11:05:09 How do i extract a certain bit from a bigint column