适用于:SQL Server 2025(17.x) 预览版
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
用于 VECTOR_NORM 将向量作为输入,并在给定的规范 类型中返回向量(这是其长度或数量级的度量值)。
例如,如果要计算 Euclidean norm(这是最常见的规范类型),可以使用:
SELECT VECTOR_NORM ( vector, 'norm2' )
FROM ...
Note
VECTOR_NORM 在具有 SQL Server 2025 或 Always-up-to-date更新策略的 Azure SQL 托管实例中可用。
Syntax
VECTOR_NORM ( vector , norm_type )
Arguments
向量
计算结果为 向量 数据类型的表达式。
norm_type
一个字符串,其名称为用于计算给定向量的规范类型。 支持以下规范类型:
-
norm1- 1-norm,它是矢量组件的绝对值之和。 -
norm2- 2-norm,也称为 Euclidean Norm,它是矢量分量平方和的平方根。 -
norminf- 无穷大规范,它是矢量组件的绝对值的最大。
返回值
该函数返回一个 浮点 值,该值代表使用指定的规范类型表示向量的规范。
如果 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;