<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Podm%C3%ADn%C4%9Bn%C3%A9_prov%C3%A1d%C4%9Bn%C3%AD_p%C5%99%C3%ADkaz%C5%AF</id>
	<title>Podmíněné provádění příkazů - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=Podm%C3%ADn%C4%9Bn%C3%A9_prov%C3%A1d%C4%9Bn%C3%AD_p%C5%99%C3%ADkaz%C5%AF"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Podm%C3%ADn%C4%9Bn%C3%A9_prov%C3%A1d%C4%9Bn%C3%AD_p%C5%99%C3%ADkaz%C5%AF&amp;action=history"/>
	<updated>2026-05-13T02:25:44Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=Podm%C3%ADn%C4%9Bn%C3%A9_prov%C3%A1d%C4%9Bn%C3%AD_p%C5%99%C3%ADkaz%C5%AF&amp;diff=231&amp;oldid=prev</id>
		<title>85.160.71.40: /* Příkaz CASE */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=Podm%C3%ADn%C4%9Bn%C3%A9_prov%C3%A1d%C4%9Bn%C3%AD_p%C5%99%C3%ADkaz%C5%AF&amp;diff=231&amp;oldid=prev"/>
		<updated>2007-01-17T08:21:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Příkaz CASE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Příkaz IF===&lt;br /&gt;
Tento příkaz umožňi podmíněné provedení SQL/PSM příkazů (v případě platnosti zadané podmínky - je rovna hodnotě true). K příkazu IF můžeme přidat libovolné množství klauzulí ELSEIF. Na ně přijde řada v případě, že podmínka v IF není splněna. Příkaz může obsahovat jednu klauzuli ELSE, která zajistí provedení relevantních SQL/PSM příkazů pokud ani jedna z testovaných podmínek není pravdivá.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Syntaxe&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IF logicky vyraz THEN&lt;br /&gt;
  seznam sql/psm prikazu&lt;br /&gt;
[ELSEIF logicky vyraz THEN&lt;br /&gt;
  seznam sql/psm prikazu [ELSEIF ...]]&lt;br /&gt;
[ELSE&lt;br /&gt;
  seznam sql/psm prikazu]&lt;br /&gt;
END IF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Příkaz CASE ===&lt;br /&gt;
Tento příkaz nám umožňuje snadný zápis řady podmínek, kdy v případě splnění některé z nich, se provede řada SQL/PSM příkazů odpovídající první platné podmínce. U tohoto příkazu je třeba si dávat pozor na záměnu s SQL výrazem &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039;. Jak SQL/PSM příkaz &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039;, tak SQL výraz &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039; existují ve dvou variantách (v jednoduché a prohledavací). Je však mezi nimi několik zásadních rozdílů: &lt;br /&gt;
* za klíčovým slovem then následuje seznam SQL/PSM příkazů,&lt;br /&gt;
* příkaz &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039; je ukončen (naprosto v tradici SQL/PSM dvojicí klíčových slov &amp;#039;&amp;#039;END CASE&amp;#039;&amp;#039;,&lt;br /&gt;
* v případě, že by žádná podmínka nebyla splněna provádí se varianta &amp;#039;&amp;#039;ELSE&amp;#039;&amp;#039;. Pokud tato klauzule chybí, vyvolá se výjimka &amp;#039;20000&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
V jednoduché variantě je za klíčovým slovem &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039; výraz. Provedou se ty SQL/PSM příkazy, kde se výsledek tohoto výrazu nalezne v klauzuli &amp;#039;&amp;#039;WHEN&amp;#039;&amp;#039;. V prohledávací variantě klauzule &amp;#039;&amp;#039;WHEN&amp;#039;&amp;#039; obsahuje logický výraz. Provede se ta část (SQL/PSM příkazy za &amp;#039;&amp;#039;THEN&amp;#039;&amp;#039;), kde výraz v klauzuli &amp;#039;&amp;#039;WHEN&amp;#039;&amp;#039; bude pravdivý. PL/pgPSM umožňuje zápis seznamu hodnot oddělených čárkou do klauzule &amp;#039;&amp;#039;WHEN&amp;#039;&amp;#039; v jednoduchém &amp;#039;&amp;#039;CASE&amp;#039;&amp;#039; příkazu (tzv. Comma-separated predicates in simple CASE statement).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Syntaxe&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- jednoduchy prikaz CASE&lt;br /&gt;
CASE vyraz&lt;br /&gt;
    WHEN seznam hodnot oddelenych carkou THEN seznam SQL/PSM prikazu&lt;br /&gt;
    [ WHEN seznam... THEN seznam... [...]]&lt;br /&gt;
END CASE&lt;br /&gt;
&lt;br /&gt;
-- prohledavaci varianta prikazu CASE&lt;br /&gt;
CASE&lt;br /&gt;
    WHEN logicky vyraz THEN seznam SQL/PSM prikazu&lt;br /&gt;
    [ WHEN logicky vyraz THEN seznam... [...]]&lt;br /&gt;
END CASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Příkaz CASE by se měl použít všude tam, kde použití příkazu IF vede k nepřehlednému zápisu.&lt;/div&gt;</summary>
		<author><name>85.160.71.40</name></author>
	</entry>
</feed>