Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
SIGNFunktion
Die SIGN Funktion gibt das Vorzeichen (positiv oder negativ) einer Zahl zurück. Das Ergebnis der SIGN Funktion ist, 1
ob das Argument positiv ist, -1
ob das Argument negativ ist oder 0
ob das Argument negativ ist0
.
Syntax
SIGN(number)
Argument
- number (Zahl
-
Zahl oder Ausdruck, der zu einer Zahl ausgewertet wird. Es kann sich um den Typ
DECIMAL
,FLOAT8
oderSUPER
handeln. Amazon Redshift kann weitere Datentypen gemäß den impliziten Konvertierungsregeln konvertieren.
Rückgabetyp
SIGNgibt den gleichen numerischen Datentyp wie das Eingabeargument zurück. Bei einer Eingabe von DECIMAL
ist die Ausgabe DECIMAL(1,0)
.
Wenn die Eingabe den Typ SUPER
hat, behält die Ausgabe den gleichen dynamischen Typ wie die Eingabe bei, während der statische Typ weiterhin den Typ SUPER
hat. Wenn der dynamische Typ von SUPER
keine Zahl ist, gibt Amazon Redshift eine NULL
zurück.
Beispiele
Das folgende Beispiel zeigt, dass Spalte d
in Tabelle t2 DOUBLE PRECISION
als Typ hat, da die Eingabe DOUBLE PRECISION
ist, und dass Spalte n
in Tabelle t2 NUMERIC(1,0)
als Ausgabe hat, da die Eingabe NUMERIC
ist.
CREATE TABLE t1(d DOUBLE PRECISION, n NUMERIC(12, 2)); INSERT INTO t1 VALUES (4.25, 4.25), (-4.25, -4.25); CREATE TABLE t2 AS SELECT SIGN(d) AS d, SIGN(n) AS n FROM t1; SELECT table_name, column_name, data_type FROM SVV_REDSHIFT_COLUMNS WHERE table_name='t1' OR table_name='t2';
+------------+-------------+-----------------------+ | table_name | column_name | data_type | +------------+-------------+-----------------------+ | t1 | d | double precision | | t1 | n | numeric(12,2) | | t2 | d | double precision | | t2 | n | numeric(1,0) | | t1 | col1 | character varying(20) | +------------+-------------+-----------------------+
Im folgenden Beispiel wird die TICKIT Beispieldatenbank verwendet. Weitere Informationen finden Sie unter Beispieldatenbank.
Verwenden Sie das folgende Beispiel, um das Vorzeichen der für eine bestimmte Transaktion gezahlten Provision anhand der SALES Tabelle zu ermitteln.
SELECT commission, SIGN(commission) FROM sales WHERE salesid=10000;
+------------+------+ | commission | sign | +------------+------+ | 28.05 | 1 | +------------+------+