Argumente in SQL (Argumente in SQL), Lektion, Seite 723277
https://www.purl.org/stefan_ram/pub/argumente_sql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Argumente in SQL

In die Aufrufklammern eines Funktionsaufrufs kann auch ein Ausdruck geschrieben werden, der dann eine Art von Operand der Funktion darstellt, und Argumentausdruck  genannt wird.

Der Wert des Argumentausdrucks wird Argumentwert  genannt.

Wenn man nun von einem Argument  alleine spricht, dann kann dies je nach Zusammenhang Argumentausdruck  oder Argumentwert  bedeuten.

Der Argumentwert kann den Wert eines Aufrufs beeinflussen.

In der folgenden Sitzung wird der Aufruf »RAND( 3 )« mit dem Argumentausdruck »3« verwendet.

Dies bewirkt die Verwendung von »3« als internen Startwert  der Zufallszahlenerzeugung. Da jedes Mal, wenn eine Abfrage mit diesem Ausdruck »RAND( 3 )« ausgewertet wird, die Zufallszahlenerzeugung wieder mit dem internen Startwert »3« beginnt, und die Zufallszahl bei diesem Startwert immer »0.90576975597606« ist, beginnen die erzeugten Zufallszahlen bei Verwendung von »RAND( 3 )« immer bei »0.90576975597606«, während sie bei Verwendung von »RAND()« nicht weiter vorhersagbar sind.

Dies zeigt deutlich, wie ein Argumentwert das Verhalten einer Funktion beeinflussen kann. Dabei kommt es nur auf den Argumentwert  an und nicht auf die genaue Schreibweise des Argumentausdrucks, denn ob man nun »3« oder »2 + 1« schreibt, ist hierbei egal.

SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET SESSION sql_mode = 'ANSI,TRADITIONAL';
DROP SCHEMA S; CREATE SCHEMA S; USE S;

CREATE TABLE T ( I INT ); INSERT INTO T ( I ) VALUES ( 1 ),( 2 ),( 3 );

SELECT I, RAND() FROM T;
+------+------------------+
| I | RAND() |
+------+------------------+
| 1 | 0.61914388706828 |
| 2 | 0.93845168309142 |
| 3 | 0.83482678498591 |
+------+------------------+

SELECT I, RAND( 3 ) FROM T;
+------+------------------+
| I | RAND( 3 ) |
+------+------------------+
| 1 | 0.90576975597606 |
| 2 | 0.37307905813035 |
| 3 | 0.14808605345719 |
+------+------------------+

SELECT I, RAND() FROM T;
+------+------------------+
| I | RAND() |
+------+------------------+
| 1 | 0.35877890638893 |
| 2 | 0.28941420772058 |
| 3 | 0.37073435016976 |
+------+------------------+

SELECT I, RAND( 3 ) FROM T;
+------+------------------+
| I | RAND( 3 ) |
+------+------------------+
| 1 | 0.90576975597606 |
| 2 | 0.37307905813035 |
| 3 | 0.14808605345719 |
+------+------------------+

SELECT I, RAND( 2 + 1 ) FROM T;
+------+------------------+
| I | RAND( 3 ) |
+------+------------------+
| 1 | 0.90576975597606 |
| 2 | 0.37307905813035 |
| 3 | 0.14808605345719 |
+------+------------------+

Übungsfragen ⃗

?   Ermittlung von Operanden ⃗

Kann es eine Funktion »F« geben, die wie in den folgenden Beispielen gezeigt, den linken Operanden  ihres Argumentausdrucks ergibt?

Auswertung
SELECT F( 1 + 3 );
1
Auswertung
SELECT F( 2 + 2 );
2
Auswertung
SELECT F( 3 + 1 );
3

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723277 stefan_ram:723277 Argumente in SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723277, slrprddef723277, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/argumente_sql