Fonction SIGN - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d'informations, consultez le billet de blog.

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 de plus amples informations, veuillez consulter 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 | +------------+------+