psql: NULLs und Leerstring unterscheiden

Hallo allerseits!

Ist es möglich, psql so zu konfigurieren, dass NULLs und Leerstrings bei einer Ausgabe nach SELECT unterschieden werden können?

Beste Grüße
Gerald

Ja. COALESCE ist Dein Freund:

test=*# create table foo (id serial, name text);
NOTICE:  CREATE TABLE will create implicit sequence "foo_id_seq" for serial column "foo.id"
CREATE TABLE
Time: 272.355 ms
test=*# insert into foo values (default, null);
INSERT 0 1
Time: 1.565 ms
test=*# insert into foo values (default, '');
INSERT 0 1
Time: 0.924 ms
test=*# select id, coalesce(name, 'NULL') from foo;
 id | coalesce
----+----------
  1 | NULL
  2 |
(2 rows)

Time: 1.674 ms
test=*# select * from foo;
 id | name
----+------
  1 |
  2 |
(2 rows)

Danke Andreas, für Deine rasend schnelle Antwort!

Herzliche Grüße
Gerald

Sach mal, du kommst aus Österreich, ich kenne da einen Gerald F. Kennen wir uns etwa?

Hallo Andreas,

jetzt wird’s aber OT.

Dein Name ist mir aus de.comp.datenbanken.misc und de.comp.datenbanken.mysql bekannt. Persönlich kennen wir uns aber wahrscheinlich noch nicht.

Mein Familienname ist Forster.

Alles Gute zum Jahreswechsel!
Gerald

Ja, okay. Ich hatte schon fast a bissl gehofft, die Mitarbeiter unseres Softwarelieferanten @work würden sich für PostgreSQL interessieren, um vielleicht deren eingesetztes DB-System durch
PostgreSQL zu ersetzen. Es ist eine Firma in Österreich, die das in der Firma eingesetzte Softwaresystem verbrochen haben…

Hab noch das gefunden:

\pset null ‘NULL’

Beste Grüße
Gerald

das dürfte aber lediglich für die Ausgabe innerhalb von psql gehen, nicht aber, wenn Du mit z.B. PHP abfragst.

schönen Abend noch,

Andreas