Bagikan melalui


VECTOR_NORM (Transact-SQL)

Berlaku untuk: Database SQL SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed Instancedi Microsoft Fabric

Gunakan VECTOR_NORM untuk mengambil vektor sebagai input dan mengembalikan norma vektor (yang merupakan ukuran panjang atau besarannya) dalam jenis norma tertentu.

Misalnya, jika Anda ingin menghitung norma Euclidean (yang merupakan jenis norma yang paling umum), Anda dapat menggunakan:

SELECT VECTOR_NORM ( vector, 'norm2' )
FROM ...

Note

VECTOR_NORMtersedia di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.

Syntax

Konvensi sintaks transact-SQL

VECTOR_NORM ( vector , norm_type )

Arguments

vektor

Ekspresi yang mengevaluasi ke jenis data vektor .

norm_type

String dengan nama jenis norma yang digunakan untuk menghitung norma vektor yang diberikan. Jenis norma berikut didukung:

  • norm1 - 1-norma, yang merupakan jumlah nilai absolut komponen vektor.
  • norm2 - 2-norma, juga dikenal sebagai Norma Euclidean, yang merupakan akar kuadrat dari jumlah kuadrat komponen vektor.
  • norminf - Norma tak terbatas, yang merupakan maksimum dari nilai absolut komponen vektor.

Mengembalikan nilai

Fungsi mengembalikan nilai float yang mewakili norma vektor menggunakan jenis norma yang ditentukan.

Kesalahan dikembalikan jika norm_type bukan jenis norma yang valid dan jika vektor bukan dari jenis data vektor.

Examples

Contoh 1

Contoh berikut membuat vektor dengan tiga dimensi dari string dengan array JSON.

DECLARE @v AS VECTOR(3) = '[1, 2, 3]';

SELECT VECTOR_NORM(@v, 'norm2') AS norm2,
       VECTOR_NORM(@v, 'norm1') AS norm1,
       VECTOR_NORM(@v, 'norminf') AS norminf;

Nilai pengembalian yang diharapkan adalah:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Contoh 2

Contoh berikut menghitung norma setiap vektor dalam tabel.

CREATE TABLE dbo.vectors
(
    ID INT PRIMARY KEY,
    v VECTOR(3) NOT NULL
);

INSERT INTO dbo.vectors (ID, v)
VALUES (1, '[0.1, -2, 42]'),
       (2, '[2, 0.1, -42]');

SELECT ID, VECTOR_NORM(v, 'norm2') AS norm
FROM dbo.vectors;