Amazon Redshift dejará de admitir la creación de UDF de Python después del 30 de junio de 2026. Empezaremos a aplicarlo por fases. Para obtener más información sobre los detalles del fin de vida de Python y las opciones de migración, consulte la entrada del blog
Función SIGN
La función SIGN devuelve el signo (positivo o negativo) de un número. El resultado de la función SIGN es 1 si el argumento es positivo, -1 si el argumento es negativo o 0 si el argumento es 0.
Sintaxis
SIGN(number)
Argumento
- número
-
Número o expresión que toma el valor de un número. Puede ser un tipo
DECIMAL,FLOAT8oSUPER. Amazon Redshift puede convertir otros tipos de datos de acuerdo con las reglas de conversión implícitas.
Tipo de retorno
SIGN devuelve el mismo tipo de datos numérico como el argumento de entrada. Si la entrada es DECIMAL, el resultado es DECIMAL(1,0).
Cuando la entrada es del tipo SUPER, la salida conserva el mismo tipo dinámico que la entrada mientras que el tipo estático sigue siendo el tipo SUPER. Cuando el tipo dinámico de SUPER no es un número, Amazon Redshift devuelve NULL.
Ejemplos
En el siguiente ejemplo, se muestra que la columna d en la tabla t2 tiene DOUBLE PRECISION como su tipo, ya que la entrada es DOUBLE PRECISION y esa columna n en la tabla t2 tiene NUMERIC(1,0) como la salida ya que la entrada es 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) | +------------+-------------+-----------------------+
El siguiente ejemplo utiliza la base de datos de ejemplo TICKIT. Para obtener más información, consulte Base de datos de muestra.
Para determinar el signo de la comisión pagada por una transacción determinada a partir de la tabla SALES, utilice el siguiente ejemplo.
SELECT commission, SIGN(commission) FROM sales WHERE salesid=10000;+------------+------+ | commission | sign | +------------+------+ | 28.05 | 1 | +------------+------+