Aufrufe mit mehreren Argumenten in SQL (MySQL )
Eine Funktion kann auch zwei Parameter haben, die dann in der Dokumentation durch ein Komma getrennt werden.
Wir zeigen im folgenden eine nicht-offizielle Dokumentation, bei welcher der Typ des Ergebnisses der Funktion vor dem Funktionsnamen steht und der Typ der Parameter vor den Parameternamen. »N« ist darin eine nicht näher bestimmte natürliche Zahl.
- Truncate (nicht-offizielle Dokumentation)
DECIMAL( N, D ) TRUNCATE( DECIMAL x, INTEGER D )
- Ergibt den auf »D« Nachkommastellen gekürzten Wert »x«.
Wenn eine Funktion mit zwei Parametern aufgerufen wird, dann müssen auch zwei Argumente angegeben werden. Diese beiden Argument werden an der Stelle geschrieben, wo bisher ein Argument stand, und sie werden voneinander durch ein Komma getrennt, welches ein lexikalische Einheit ist.
Die Werte der beiden Argumente können das Ergebnis der Funktion beeinflussen oder festlegen. Bei der Funktion »TRUNCATE« gibt der zweite Wert beispielsweise die Anzahl der für das Ergebnis zu bewahrenden Nachkommastellen des ersten Arguments an. Daher wirkt sich eine Veränderung an jedem der beiden Argumente in der Regel auf das Ergebnis aus – außer wenn eine der hinteren Stellen des ersten Wertes verändert wird, die dann nicht im Ergebnis vorkommt, weil sie von der Funktion abgeschnitten wurde.
- Select-Abfrage (MySQL 5.5)
mysql> SELECT TRUNCATE( 3.1415926, 2 );
+--------------------------+
| TRUNCATE( 3.1415926, 2 ) |
+--------------------------+
| 3.14 |
+--------------------------+
1 row in set (0.00 sec)
Entsprechend gibt es auch Funktionen, die noch mehr als zwei Argumente haben, wie beispielsweise drei Argumente.
Verschachtelung von Funktionsaufrufen (Ausdrucksfreiheit)
Ein Argument kann ein beliebiger Ausdruck, wie beispielsweise ein Literal, ein Spaltenname, eine Operatorausdruck oder ein anderer Funktionsaufruf sein.
- Select-Abfrage (MySQL 5.5)
mysql> SELECT TRUNCATE( RAND(), 2 );
+-----------------------+
| TRUNCATE( RAND(), 2 ) |
+-----------------------+
| 0.93 |
+-----------------------+
1 row in set (0.00 sec)- Wertausdrücke (<value expressions>)
1
1.2
1e0
Zeichen
Name
'Alpha'
Zeichen + 1
1 + Zeichen
RAND()
RAND( 3 )
ROUND( RAND(), 2 )
Eine vollständige Liste der Funktionen findet sich im MySQL-Handbuch.