

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função SIGN
<a name="r_SIGN"></a>

 A função SIGN retorna o sinal (positivo ou negativo) de um número. O resultado da função SIGN será `1` se o argumento for positivo, `-1` se o argumento for negativo ou `0` se o argumento for `0`. 

## Sintaxe
<a name="r_SIGN-synopsis"></a>

```
SIGN(number)
```

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

 *Número da*   
Número ou expressão que avalia para um número. Ele pode ser tipo `DECIMAL`, `FLOAT8` ou `SUPER`. O Amazon Redshift pode converter outros tipos de dados de acordo com as regras de conversão implícitas.

## Tipo de retorno
<a name="r_SIGN-return-type"></a>

SIGN retorna o mesmo tipo de dados numéricos que o argumento de entrada. Se a entrada for `DECIMAL`, a saída será `DECIMAL(1,0)`. 

Quando a entrada é do tipo `SUPER`, a saída mantém o mesmo tipo dinâmico que a entrada enquanto o tipo estático permanece o tipo `SUPER`. Quando o tipo dinâmico de `SUPER` não é um número, o Amazon Redshift retorna um `NULL`.

## Exemplos
<a name="r_SIGN-examples"></a>

O exemplo a seguir mostra que a coluna `d` na tabela t2 tem `DOUBLE PRECISION` como seu tipo, já que a entrada é `DOUBLE PRECISION` e que a coluna `n` na tabela t2 tem `NUMERIC(1,0)` como saída, visto que a entrada é `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) |
+------------+-------------+-----------------------+
```

Os exemplos a seguir usa o banco de dados de exemplo de TICKIT. Para obter mais informações, consulte [Banco de dados de exemplo](c_sampledb.md).

Para determinar o sinal da comissão paga por determinada transação na tabela SALES, use o exemplo a seguir. 

```
SELECT commission, SIGN(commission)
FROM sales WHERE salesid=10000;

+------------+------+
| commission | sign |
+------------+------+
|      28.05 |    1 |
+------------+------+
```