Обсуждение: getting y/n or 1/0 from bool fields
Hello all, Some of our development software is not really "PostgreSQL aware" in that it expects bool values to be y/n (ala MS Access) or 1/0. However it seems that Postgres returns t/f. Does anyone know a way to get Postgres to return one of the above (preferably, 1/0) for boolean values? Ideally, it would be somewhat of a transparent feature, so that a "SELECT * FROM table;" would have all bool values in the format above. Any suggestions greatly apreciated, Matthew Nuzum
On Mon, 2002-09-02 at 16:01, Matthew Nuzum wrote: > Some of our development software is not really "PostgreSQL aware" in > that it expects bool values to be y/n (ala MS Access) or 1/0. However > it seems that Postgres returns t/f. > > Does anyone know a way to get Postgres to return one of the above > (preferably, 1/0) for boolean values? > > Ideally, it would be somewhat of a transparent feature, so that a > "SELECT * FROM table;" would have all bool values in the format above. > > Any suggestions greatly apreciated, My JSP applications don't care. The column is y/n type and y = t and n = f. Where the conversion takes place I do not know? Cheers Tony Grant -- RedHat Linux on Sony Vaio C1XD/S http://www.animaproductions.com/linux2.html Macromedia UltraDev with PostgreSQL http://www.animaproductions.com/ultra.html
Matthew Nuzum sez:
} Hello all,
}
} Some of our development software is not really "PostgreSQL aware" in
} that it expects bool values to be y/n (ala MS Access) or 1/0. However
} it seems that Postgres returns t/f.
}
} Does anyone know a way to get Postgres to return one of the above
} (preferably, 1/0) for boolean values?
}
} Ideally, it would be somewhat of a transparent feature, so that a
} "SELECT * FROM table;" would have all bool values in the format above.
Suppose you have a table:
CREATE TABLE Foo (
id SERIAL not null,
istrue boolean not null,
primary key (id)
);
...but you want y or n instead of t or f...
CREATE VIEW FooView AS (
SELECT id, (CASE WHEN istrue THEN 'y' ELSE 'n')
FROM Foo
);
If you feel like encapsulating it, you can do the following:
CREATE FUNCTION yesno(boolean) RETURNS char(1)
AS 'SELECT (CASE WHEN $1 THEN \'y\' ELSE \'n\')'
LANGUAGE SQL;
} Any suggestions greatly apreciated,
} Matthew Nuzum
--Greg