Fonction SIGN - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonction SIGN

La fonction SIGN renvoie le signe (positif ou négatif) d’un nombre. Le résultat de la fonction SIGN est 1 si l’argument est positif, -1 si l’argument est négatif ou 0 si l’argument est 0.

Syntaxe

SIGN(number)

Argument

number

Nombre ou expression ayant pour valeur un nombre. Il peut être de type DECIMAL, FLOAT8 ou SUPER. D’autres types de données peuvent être convertis par Amazon Redshift via les règles de conversion implicites.

Type de retour

SIGN renvoie le même type de données numérique que celui de l’argument en entrée. Si l’entrée est de type DECIMAL, le résultat est de type DECIMAL(1,0).

Quand l’entrée est de type SUPER, la sortie conserve le même type dynamique que l’entrée, tandis que le type statique reste le type SUPER. Lorsque le type dynamique de SUPER n’est pas un nombre, Amazon Redshift renvoie NULL.

Exemples

L’exemple suivant montre que la colonne d dans la table t2 est de type DOUBLE PRECISION puisque l’entrée est de type DOUBLE PRECISION et que la colonne n dans la table t2 a NUMERIC(1,0) comme sortie puisque l’entrée est de type NUMERIC.

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) | +------------+-------------+-----------------------+

L’exemple suivant utilise l’exemple de base de données TICKIT. Pour plus d’informations, consultez Exemple de base de données.

Pour déterminer le signe de la commission payée pour une transaction donnée à partir de la table SALES, utilisez l’exemple suivant.

SELECT commission, SIGN(commission) FROM sales WHERE salesid=10000; +------------+------+ | commission | sign | +------------+------+ | 28.05 | 1 | +------------+------+