

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# SIGN 関数
<a name="r_SIGN"></a>

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

## 構文
<a name="r_SIGN-synopsis"></a>

```
SIGN(number)
```

## 引数
<a name="r_SIGN-argument"></a>

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

## 戻り型
<a name="r_SIGN-return-type"></a>

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

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

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

次の例は、入力が `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 サンプルデータを使用します。詳細については、「[サンプルデータベース](c_sampledb.md)」を参照してください。

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

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

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