

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="r_SIGN"></a>

 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
<a name="r_SIGN-synopsis"></a>

```
SIGN(number)
```

## Argomento
<a name="r_SIGN-argument"></a>

 *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
<a name="r_SIGN-return-type"></a>

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
<a name="r_SIGN-examples"></a>

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](c_sampledb.md).

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