<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Prosba o pomoc]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1493</link>
		<description><![CDATA[Najświeższe odpowiedzi w Prosba o pomoc.]]></description>
		<lastBuildDate>Thu, 09 May 2013 12:58:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Prosba o pomoc]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4177#p4177</link>
			<description><![CDATA[Dziękuję baaaardzo :). Wszystko śmiga bez problemu :)]]></description>
			<author><![CDATA[dummy@example.com (pat)]]></author>
			<pubDate>Thu, 09 May 2013 12:58:39 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4177#p4177</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Prosba o pomoc]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4176#p4176</link>
			<description><![CDATA[Może tak (dodałem obsługę wartości z poza zakresów które podałeś i obsługę wartości null)
CREATE OR REPLACE FUNCTION tv_primetime2(integer) RETURNS integer as $BODY$
DECLARE ttime ALIAS FOR $1;
BEGIN
           if ttime BETWEEN 600 AND 859 THEN return 0; 
        elsif ttime BETWEEN 900 AND 1559 THEN return 1; 
        elsif ttime BETWEEN 1600 AND 1729 THEN return 2; 
        elsif ttime BETWEEN 1730 AND 2229 THEN return 3; 
        elsif ttime BETWEEN 2230 AND 2600 THEN return 4; 
        ELSE RETURN 5;
        END if;
END;
$BODY$ 
IMMUTABLE 
RETURNS NULL ON NULL INPUT
LANGUAGE plpgsql;

Przykład użycia:
with d as (values (1),(600),(900),(1600),(1730),(2230),(2601),(null))
select d.*,tv_primetime2(d.column1) from d;]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 09 May 2013 12:22:12 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4176#p4176</guid>
		</item>
		<item>
			<title><![CDATA[Prosba o pomoc]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=4175#p4175</link>
			<description><![CDATA[Witam,

jestem dość zielony w temacie postgresa ale muszę zrobić jedną procedurę na podstawie innej.
Zrobiłem i ciągle mam errory. 
Możecie zobaczyć co jest nie tak??

To jest wzór
[code]
CREATE OR REPLACE FUNCTION public.tv_primetime(integer)
 RETURNS integer
 LANGUAGE plpgsql
 IMMUTABLE
AS $function$
    DECLARE
        ttime ALIAS FOR $1;
    BEGIN
        IF ttime < 1100 THEN
            RETURN 1;
        ELSIF ttime < 1730 THEN
            RETURN 1;
        ELSIF ttime < 2230 THEN
            RETURN 2;
        ELSE
            RETURN 3;
        END IF;
    END;
$function$
[/code]

a to jest moja

[code]
CREATE OR REPLACE FUNCTION tv_primetime2(integer) RETURNS integer as $$
        DECLARE ttime ALIAS FOR $1;
        BEGIN
        CASE WHEN ttime BETWEEN 600 AND 859 THEN 
        return 0; 
        WHEN ttime BETWEEN 900 AND 1559 THEN 
        return 1; 
        WHEN ttime BETWEEN 1600 AND 1729 THEN 
        return 2; 
        WHEN ttime BETWEEN 1730 AND 2229 THEN 
        return 3; 
        WHEN ttime BETWEEN 2230 AND 2600 THEN 
        return 4; 
        CASE END;
        END;
$$ IMMUTABLE LANGUAGE plpgsql;


[/code]

nie wiem o co biega do końca z tymi $$ przy zwracaniu wartości, generalnie będę bardzo wdzięczny za pomoc ;)]]></description>
			<author><![CDATA[dummy@example.com (pat)]]></author>
			<pubDate>Thu, 09 May 2013 10:54:25 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=4175#p4175</guid>
		</item>
	</channel>
</rss>
