Bagikan melalui


% (Modulus) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Menghasilkan sisa satu angka dibagi dengan angka lainnya.

Konvensi sintaks transact-SQL

Syntax

dividend % divisor

Arguments

dividend

Ekspresi numerik yang akan dibagi. dividen harus merupakan ekspresi yang valid dari salah satu jenis data dalam kategori bilangan bulat dan jenis data moneter, atau jenis data numerik.

divisor

Ekspresi numerik untuk membagi dividen. divisor harus berupa ekspresi valid dari salah satu jenis data dalam kategori bilangan bulat dan jenis data moneter, atau jenis data numerik .

Jenis hasil

Ditentukan oleh jenis data dari dua argumen.

Remarks

Anda dapat menggunakan operator aritmatika modulo dalam daftar SELECT pernyataan pilihan dengan kombinasi nama kolom, konstanta numerik, atau ekspresi valid dari kategori bilangan bulat dan jenis data moneter, atau jenis data numerik .

Examples

Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.

A. Contoh dasar

Contoh berikut membagi angka 38 dengan 5. Hasilnya adalah 7 sebagai bagian bilangan bulat dari hasilnya, dan menunjukkan bagaimana modulo mengembalikan sisa .3

SELECT
    38 / 5 AS [Integer],
    38 % 5 AS [Remainder];

B. Contoh menggunakan kolom dalam tabel

Contoh berikut mengembalikan nomor ID produk, harga satuan produk, dan modulo (sisanya) dari pembagian harga setiap produk, dikonversi ke nilai bilangan bulat, ke dalam jumlah produk yang dipesan.

SELECT TOP (100) ProductID,
    UnitPrice,
    OrderQty,
    CAST((UnitPrice) AS INT) % OrderQty AS Modulo
FROM Sales.SalesOrderDetail;
GO

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

C: Contoh dasar

Contoh berikut menunjukkan hasil untuk % operator saat membadingkan 3 dengan 2.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Berikut set hasilnya.

1