Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego not null || null = null? POMOCY
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
fryk
  1. SELECT 'ala ma kota' || NULL


Result: null

Dlaczego?
Parti
Bo taka jest przyjęta konwencja, że jeśli jeden z operandów operatora "lub" jest null, a drugi jest false lub null, to wynik jest null. No i jeszcze dlatego, że:
  1. SELECT 'napis' || 'napis'
daje false.
fryk
W takim razie jak poloczyc dwa STRINGI w jednym zapytaniu jesli jedno moze byc NULL?
Jabol
Postgresql Docs
Ojjj... a poszukać po manualu to już się nie da?
Method
obawiam sie ze tu nie ma sensu szukac w manualu jabol
raczej w podreczniku do matematyki tam przy tautologiach byly takie fajne tabelki and or xor etc ....
tjagiel
Ja to robię tak:

if zmienna2 is not null
then zmienna_wynik := zmienna1 || zmienna2;
else zmienna_wynik := zmienna1;
end if;

Proste - ale działa tongue.gif
fryk
To do funkcji - my mówimy o zapytaniach.

Najzdrabniejsze rozwiązanie:

SELECT COALESCE(zmienna1||zmienna2, zmienna1, 'nic')

*COASESCE - bierze pierwszy nienulowy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.