SIGN 関数 - Amazon Redshift

SIGN 関数

SIGN 関数は、数の符号 (正または負) を返します。SIGN 関数の結果は、引数が正の場合は 1、引数が負の場合は -1、引数が 0 の場合は 0 になります。

構文

SIGN(number)

引数

number

数値、または数値に評価される式。DECIMALFLOAT8、または SUPER 型を使用できます。その他のデータ型は、暗黙的変換ルールに従って Amazon Redshift によって変換できます。

戻り型

SIGN は、入力引数と同じ数値データ型を返します。入力が DECIMAL の場合、出力は DECIMAL(1,0) になります。

入力が SUPER 型の場合、出力は入力と同じ動的型を保持しますが、静的型は SUPER 型のままです。SUPER の動的型が数値でない場合、Amazon Redshift は NULL を返します。

次の例は、入力が DOUBLE PRECISION であるため、テーブル t2 の列 d の型が DOUBLE PRECISION であり、入力が NUMERIC であるため、テーブル t2 の列 n の出力は NUMERIC(1,0) であることを示しています。

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

次の例では、TICKIT サンプルデータを使用します。詳細については、「サンプルデータベース」を参照してください。

SALES テーブルから、特定の取引において支払われたコミッションの符号を判別するには、次の例を使用します。

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