10-12-2020, Saat: 15:26
Selamün Aleyküm arkadaşlar,
Postgresql veritabanında aşağıdaki gibi bir fonksiyonum var.
Fonksiyonun parametreleri bazen boş olabiliyor.
Parametre boş oluncada Select sorgu sonucu boş dönüyor.
Acaba bu parametrelere göre fonksiyon içinde bir değişken tanımlayıp where kısmına ekleyebilir miyiz?
Postgresql veritabanında aşağıdaki gibi bir fonksiyonum var.
Fonksiyonun parametreleri bazen boş olabiliyor.
Parametre boş oluncada Select sorgu sonucu boş dönüyor.
Acaba bu parametrelere göre fonksiyon içinde bir değişken tanımlayıp where kısmına ekleyebilir miyiz?
CREATE OR REPLACE FUNCTION "abc"."listeal"("xsehir1" VARCHAR,"xsehir2" VARCHAR) RETURNS TABLE("id" int4, "sehir1" varchar, "sehir2" varchar, "tutar" float8) AS $BODY$BEGIN -- Where kısmını Bir değişkene aktarsak -- DECLARE s TEXT; -- IF ("xsehir1"<>'') THEN -- s=' and (l."sehir1"="xsehir1")'; -- END IF; -- IF ("xsehir2"<>'') THEN -- s=s+' and (l."sehir2"="xsehir2")'; -- END IF; -- Delete(s,1,4); -- if s<>'' then -- s='WHERE '+s RETURN Query SELECT l."id",l."sehir1",l."sehir2",l."tutar" FROM "abc"."liste" l + s; END$BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 100.