View a markdown version of this page

Fungsi SIGN - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi SIGN

Fungsi SIGN mengembalikan tanda (positif atau negatif) dari suatu angka. Hasil dari fungsi SIGN adalah 1 jika argumennya positif, -1 jika argumennya negatif, atau 0 jika argumennya positif0.

Sintaksis

SIGN(number)

Pendapat

jumlah

Angka atau ekspresi yang mengevaluasi ke angka. Itu bisa berupaDECIMAL,FLOAT8, atau SUPER tipe. Amazon Redshift dapat mengonversi tipe data lain sesuai aturan konversi implisit.

Jenis pengembalian

SIGN mengembalikan tipe data numerik yang sama dengan argumen input. Jika input adalahDECIMAL, outputnya adalahDECIMAL(1,0).

Ketika input adalah SUPER tipe, output mempertahankan tipe dinamis yang sama dengan input sementara tipe statis tetap SUPER tipe. Jika tipe dinamis SUPER bukan angka, Amazon Redshift mengembalikan aNULL.

Contoh

Contoh berikut menunjukkan bahwa kolom d dalam tabel t2 memiliki DOUBLE PRECISION jenisnya karena inputnya adalah DOUBLE PRECISION dan kolom n dalam tabel t2 memiliki NUMERIC(1,0) output karena inputnya adalahNUMERIC.

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

Contoh berikut menggunakan database sampel TICKIT. Untuk informasi selengkapnya, lihat Database sampel.

Untuk menentukan tanda komisi yang dibayarkan untuk transaksi tertentu dari tabel PENJUALAN, gunakan contoh berikut.

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