Funzione SIGN - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

numero

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