Funzione SIGN - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Funzione SIGN

La funzione SIGN restituisce il segno (positivo o negativo) di un numero. Il risultato della funzione SIGN è 1 se l'argomento è positivo,-1 se l'argomento è negativo, oppure 0 se l'argomento è 0.

Sintassi

SIGN(number)

Argomento

number

Numero o espressione che valuta un numero. Può essere anche di tipo DECIMAL, FLOAT8 o SUPER. Altri tipi di dati possono essere convertiti da Amazon Redshift in base alle regole di conversione implicita.

Tipo restituito

SIGN restituisce lo stesso tipo di dati numerici dell'argomento di input. Se l'input è DECIMAL, l'output è DECIMAL(1,0).

Quando l'input è di tipo SUPER, l'output mantiene lo stesso tipo dinamico dell'input mentre il tipo statico rimane il tipo SUPER. Quando il tipo dinamico di SUPER non è un numero, Amazon Redshift restituisce un valore NULL.

Esempi

L'esempio seguente mostra che la colonna d nella tabella t2 ha il tipo DOUBLE PRECISION poiché l'input è DOUBLE PRECISION e quella colonna n nella tabella t2 ha NUMERIC(1,0) come output poiché l'input è 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'esempio seguente utilizza il database di esempio TICKIT. Per ulteriori informazioni, consulta Database di esempio.

Per determinare il segno della commissione pagata per una determinata transazione dalla tabella SALES, utilizza l'esempio seguente.

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