Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2025 (17.x) Предварительная версия
Azure SQL Database
Azure SQL Managed Instance
База данных SQL в Microsoft Fabric Preview
Используется VECTOR_NORM
для принятия вектора в качестве входных данных и возвращения нормы вектора (которая является мерой его длины или величины) в заданном типе норм.
Например, если вы хотите вычислить норму Евклиида (который является наиболее распространенным типом норм), можно использовать следующее:
SELECT VECTOR_NORM ( vector, 'norm2' )
FROM ...
Note
Этот тип данных находится в предварительной версии и подлежит изменению. Обязательно ознакомьтесь с условиями использования предварительной версии в документе соглашения об уровне обслуживания (SLA) для веб-служб .
VECTOR_NORM
доступен в Управляемом экземпляре SQL Azure, настроенном с помощью политики обновления Always-up-to-date .
Syntax
Соглашения о синтаксисе Transact-SQL
VECTOR_NORM ( vector, norm_type )
Arguments
vector
Выражение, которое оценивает тип векторных данных.
norm_type
Строка с именем типа норм, используемого для вычисления нормы заданного вектора. Поддерживаются следующие типы норм:
-
norm1
— 1-норма, которая является суммой абсолютных значений векторных компонентов. -
norm2
- 2-норма, также известная как евклидеанской норме, которая является квадратным корнем суммы квадратов векторных компонентов. -
norminf
- Норма бесконечности, которая является максимумом абсолютных значений векторных компонентов.
Return value
Функция возвращает значение с плавающей запятой , представляющее норму вектора с помощью указанного типа норм.
Ошибка возвращается, если norm_type не является допустимым типом норм и если вектор не является типом векторных данных.
Examples
Example 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 |
Example 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;