共用方式為


VECTOR_NORM (Transact-SQL)

適用於: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

使用 VECTOR_NORM 以向量做為輸入,並在指定的 常態類型中傳回向量的常態(這是其長度或大小量值)。

例如,如果您想要計算 Euclidean 常態(這是最常見的常態類型),您可以使用:

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

Note

VECTOR_NORM 可在 Azure SQL 受控執行個體中使用 SQL Server 2025一律up-to日期更新原則

Syntax

Transact-SQL 語法慣例

VECTOR_NORM ( vector , norm_type )

Arguments

向量

評估為 向量 數據類型的表達式。

norm_type

字串,其名稱為 norm 型別,用來計算指定向量的常態。 支援下列常態類型:

  • norm1 - 1-norm,這是向量元件的絕對值總和。
  • norm2 - 2 範數,也稱為歐幾里得範數,它是向量分量平方和的平方根。
  • norminf - 無限常態,這是向量元件絕對值的最大值。

返回值

函式會傳回 float 值,這個值代表使用指定之 norm 型別的向量常態。

如果 norm_type 不是有效的規範類型,且向量不是 向量資料類型,則會傳回錯誤。

Examples

範例 1

下列範例會從具有 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;

預期的傳回值為:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

範例 2

下列範例會計算數據表中每個向量的常態。

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;