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?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.
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.