VECTOR_NORM (Transact-SQL) (預覽)
適用於:Azure SQL 資料庫
注意
此數據類型處於預覽狀態,而且可能會變更。 請務必閱讀在線服務服務服務等級協定 (SLA) 檔中的預覽使用規定。
函式 VECTOR_NORM
會採用向量做為輸入,並傳回向量的常態(這是其長度或大小量值)在指定的 常態類型中
例如,如果您想要計算 Euclidean 常態(這是最常見的常態類型),您可以使用:
SELECT VECTOR_NORM ( vector_column, 'norm2' )
FROM ...
Syntax
VECTOR_NORM ( vector_column, norm_type )
引數
vector_column
評估為向量的表達式。 此數據行必須是新的 向量 數據類型
norm_type
字串,其名稱為 norm 型別,用來計算指定向量的常態。 支援下列常態類型:
norm1
- 1-norm,這是向量元件的絕對值總和。norm2
- 2-norm,也稱為 Euclidean Norm,這是向量元件平方總和的平方根。norminf
- 無限常態,這是向量元件絕對值的最大值。
傳回值
函式會 傳回 float 值,這個值代表使用指定之 norm 型別的向量常態。
如果norm_type不是有效的常態類型,而且vector_column不是向量類型,則會傳回錯誤。
範例
範例 1
下列範例會從具有 JSON 陣列的字串建立具有三個維度的向量。
DECLARE @v 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;