Difference between pages "COALESCE/de" and "CONCAT/de"

From SQLZOO
< COALESCE(Difference between pages)
Jump to: navigation, search
 
 
Line 2: Line 2:
 
<table align='right' border='1'>
 
<table align='right' border='1'>
 
<caption>Kompatibilität</caption>
 
<caption>Kompatibilität</caption>
<tr><th colspan='3'>COALESCE(f1, f2)</th></tr>
+
<tr><th colspan='3'>CONCAT(s1, s2)</th></tr>
 
<tr><td align='center'>'''DBMS'''</td><td align='center'>'''OK'''</td><td align='center'>'''Alternative'''</td></tr>
 
<tr><td align='center'>'''DBMS'''</td><td align='center'>'''OK'''</td><td align='center'>'''Alternative'''</td></tr>
 
<tr><td align='left'>Ingres</td><td>Ja</td><td></td></tr>
 
<tr><td align='left'>Ingres</td><td>Ja</td><td></td></tr>
<tr><td align='left'>MySQL</td><td>Ja</td><td>[[IFNULL/de |IFNULL(f1, f2)]]</td></tr>
+
<tr><td align='left'>MySQL</td><td>Ja</td><td></td></tr>
<tr><td align='left'>Oracle</td><td>Ja</td><td>[[NVL/de |NVL(f1, f2)]]</td></tr>
+
<tr><td align='left'>Oracle</td><td>Nein</td><td>s1 || s2</td></tr>
<tr><td align='left'>PostgreSQL</td><td>Ja</td><td></td></tr>
+
<tr><td align='left'>PostgreSQL</td><td>Nein</td><td>s1 || s2</td></tr>
<tr><td align='left'>SQL Server</td><td>Ja</td><td></td></tr>
+
<tr><td align='left'>SQL Server</td><td>Nein</td><td>s1 + s2</td></tr>
 
</table>
 
</table>
  
<h1>COALESCE</h1>
+
<h1>CONCAT</h1>
<p>COALESCE liefert aus einer Liste von Werten den ersten Wert, der nicht NULL ist. </p>
+
<p>Mittels CONCAT können mehrere Zeichenketten (Strings) zu einer Zeichekkette zusammengefügt werden.</p>
<p></p>  
+
<p>This operation is concatenation.</p>  
<pre style='width:90ex'>
+
<pre style='width:60ex'>
  COALESCE(x,y,z) = x, wenn x nicht NULL ist
+
  CONCAT(s1, s2 ...)   
   COALESCE(x,y,z) = y, wenn x NULL ist und y nicht NULL ist
+
  COALESCE(x,y,z) = z, wenn x und y NULL sind, aber z nicht NULL ist
+
  COALESCE(x,y,z) = NULL, wenn x und y und z NULL sind
+
 
</pre>
 
</pre>
  
 
<div class='ht'>
 
<div class='ht'>
<div class=params>schema:gisq</div>
+
In diesem Beispiel werden die Region und der Name eines Landes zusammengefügt.  
COALESCE kann hilfreich sein, wenn NULL-Werte durch andere Werte ersetzt werden sollen.
+
<source lang='sql' class='def e-oracle e-postgres'>
In diesem Beispiel werden die Namen der Parteien der Mitglieder des Schottischen Parlaments (MSP) angezeigt.
+
SELECT region || name
Für Mitglieder, die keiner Partei angehören (z.B. Canavan, Dennis) wird die Zeichenkette 'Keine' ausgegeben. 
+
  FROM bbc
<source lang='sql' class='def e-oracle'>
+
</source>
SELECT name, party,
+
<source lang='sql' class='def e-sqlserver'>
      COALESCE(party,'Keine') AS aff
+
SELECT region + name
   FROM gisq.msp WHERE name LIKE 'C%'
+
   FROM bbc
 
</source>
 
</source>
 
<source lang='sql' class='def'>
 
<source lang='sql' class='def'>
SELECT name, party,
+
SELECT CONCAT(region,name)
      COALESCE(party,'Keine') AS aff
+
   FROM bbc
   FROM msp WHERE name LIKE 'C%'
+
 
</source>
 
</source>
 
</div>
 
</div>
Line 40: Line 36:
 
<p>Siehe auch</p>
 
<p>Siehe auch</p>
 
<ul>
 
<ul>
   <li>[[CASE/de | Funktion CASE]]</li>
+
   <li>[[SUBSTRING/de | Funktion SUBSTRING]]</li>
   <li>[[NULLIF/de | Funktion NULLIF]]</li>
+
   <li>[[TRIM/de | Funktion TRIM]]</li>
  <li>[[NVL/de | Funktion NVL]]</li>
+
 
</ul>
 
</ul>
  
 
{{Languages}}
 
{{Languages}}

Revision as of 17:13, 21 October 2012

Kompatibilität
CONCAT(s1, s2)
DBMSOKAlternative
IngresJa
MySQLJa
OracleNeins1 || s2
PostgreSQLNeins1 || s2
SQL ServerNeins1 + s2

CONCAT

Mittels CONCAT können mehrere Zeichenketten (Strings) zu einer Zeichekkette zusammengefügt werden.

This operation is concatenation.

   CONCAT(s1, s2 ...)   

In diesem Beispiel werden die Region und der Name eines Landes zusammengefügt.

SELECT region || name
  FROM bbc
SELECT region + name
  FROM bbc
SELECT CONCAT(region,name)
  FROM bbc

Siehe auch

Sprache: English  • Deutsch
Personal tools
Namespaces

Variants
Actions
Reference
Toolbox
Google AdSense