<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Prosba o pomoc]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1493&amp;type=atom"/>
	<updated>2013-05-09T12:58:39Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1493</id>
		<entry>
			<title type="html"><![CDATA[Odp: Prosba o pomoc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4177#p4177"/>
			<content type="html"><![CDATA[Dziękuję baaaardzo :). Wszystko śmiga bez problemu :)]]></content>
			<author>
				<name><![CDATA[pat]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1574</uri>
			</author>
			<updated>2013-05-09T12:58:39Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4177#p4177</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Prosba o pomoc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4176#p4176"/>
			<content type="html"><![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;]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2013-05-09T12:22:12Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4176#p4176</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Prosba o pomoc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4175#p4175"/>
			<content type="html"><![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 ;)]]></content>
			<author>
				<name><![CDATA[pat]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1574</uri>
			</author>
			<updated>2013-05-09T10:54:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4175#p4175</id>
		</entry>
</feed>
