test=# create table b (id int, b bool);
CREATE TABLE
test=*# insert into b values (1, 'true'::bool);
INSERT 0 1
test=*# insert into b values (2, 'false'::bool);
INSERT 0 1
test=*# select id, case when b then '1' else '0' end from b;
id | case
----+------
1 | 1
2 | 0
(2 rows)
dankeschön!! Das Select CASE war das Entscheidende. Allerdings stellt sich die Frage, ob die Repräsentation von True und False auch standardmäßig als 1 bzw. 0 einstellbar ist.
test=# \d b
Table "public.b"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
b | boolean |
test=# alter table b alter column b type bit(1) using case when b then 1::bit(1) else 0::bit(1) end;
ALTER TABLE
test=*# \d b
Table "public.b"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
b | bit(1) |
Ah ok, danke! Soweit war ich fast… Hast du eventl. noch zwei drei Worte bezgl. 1::bit(1)? mir is die Notwendigkeit des ::-Operators nicht so wirklich klar.