Küsimus

Anonüümne
PostgreSQLis NULL || tekstiline väärtus = NULL. Kuidas luua PostgreSQLis sarnane operaator MS Accessi stringide konkatenatsiooni operaatorile &, mille korral NULL & tekstiline väärtus = tekstiline väärtus?

Vastus: Järgneva koodi võite käivitada oma andmebaasis ja see loob operaatori & mis käitub nii:
NULL & tekstiline väärus = tekstiline väärtus
NULL & NULL = tühi string

CREATE FUNCTION textcat_coalesce(text, text) RETURNS text AS $$
SELECT coalesce($1,'') || coalesce($2,'');
$$ LANGUAGE sql IMMUTABLE LEAKPROOF;

COMMENT ON FUNCTION textcat_coalesce(text, text) IS
'Stringide konkatenatsiooni operaatorit & realiseeriv funktsioon. Tagab, et operatsiooni tulemus pole NULL.';

CREATE OPERATOR & (
LEFTARG = text,
RIGHTARG = text,
PROCEDURE = textcat_coalesce
);

SELECT NULL || 'katsetus' AS tulemus;
Tulemus:NULL

SELECT NULL & 'katsetus' AS tulemus;
Tulemus: katsetus


Keskmine hinne: Pole veel hinnanguid!