OPENJSON и алиас
Пересказ статьи Marty Catherall. OPENJSON and an Alias
Использование алиасов в T-SQL является делом обычным.
Мы можем присваивать алиасы как таблицам (предложение FROM) и столбцам (предложение SELECT), так и некоторым другим вещам. Это важно для написания хороших запросов на T-SQL.
Вот пример:
Замечу, что мы можем использовать различные стили, однако я рекомендую вам стандартизировать ваш стиль.
Так или иначе, назначение этой статьи - обрисовать возможность присвоения алиасов при использовании явных схем JSON и схем, принимаемых по умолчанию, в ваших запросах T-SQL.
Ниже приводится пример использования алиаса со схемой по умолчанию.
Здесь нет ничего необычного.
Немного необычная часть может появиться при использовании явной схемы.
Пример.
Заметим, что алиас для явной схемы идет после предложения WITH.
Если мы попытаемся поместить алиас сразу после строки
то получим ошибку.
Хотя это может показаться тривиальным, но окажется весьма полезным при смешении явной и неявной схем.
Скоро продолжим.
SELECT
dbs.collation_name
,dbs.database_id AS [DatabaseID]
,[IsReadOnly] = dbs.is_read_only
FROM
sys.databases AS dbs
JOIN
sys.master_files MF
ON
dbs.database_id = MF.database_id
WHERE
dbs.[name] = 'master';
GO
Замечу, что мы можем использовать различные стили, однако я рекомендую вам стандартизировать ваш стиль.
Так или иначе, назначение этой статьи - обрисовать возможность присвоения алиасов при использовании явных схем JSON и схем, принимаемых по умолчанию, в ваших запросах T-SQL.
Ниже приводится пример использования алиаса со схемой по умолчанию.
DECLARE @json NVARCHAR(MAX) =
N'
{
"Configuration Property": {
"Configuration name": "recovery interval (min)",
"Value": 0,
"minimum": 0,
"maximum": 32767,
"value_in_use": 0,
"description": "Maximum recovery interval in minutes",
"is_dynamic": true,
"is_advanced": true
}
}
';
SELECT
DS.[key]
,DS.[value]
,DS.[type]
FROM
OPENJSON(@json, '$."Configuration Property"') AS DS;
GO
Здесь нет ничего необычного.
Немного необычная часть может появиться при использовании явной схемы.
Пример.
DECLARE @json NVARCHAR(MAX) =
N'
{
"Configuration Property": {
"Configuration name": "recovery interval (min)",
"Value": 0,
"minimum": 0,
"maximum": 32767,
"value_in_use": 0,
"description": "Maximum recovery interval in minutes",
"is_dynamic": true,
"is_advanced": true
}
}
';
SELECT
ES.[Configuration name]
,ES.[Value]
,ES.[minimum]
,ES.[maximum]
,ES.[value_in_use]
,ES.[description]
,ES.[is_dynamic]
,ES.[is_advanced]
FROM
OPENJSON(@json, '$."Configuration Property"')
WITH
(
[Configuration name] NVARCHAR(35)
,[Value] NVARCHAR(100)
,[minimum] NVARCHAR(100)
,[maximum] NVARCHAR(100)
,[value_in_use] NVARCHAR(100)
,[description] NVARCHAR(100)
,[is_dynamic] BIT
,[is_advanced] BIT
) AS ES;
Заметим, что алиас для явной схемы идет после предложения WITH.
Если мы попытаемся поместить алиас сразу после строки
OPENJSON(@json, '$."Configuration Property"')
то получим ошибку.
Хотя это может показаться тривиальным, но окажется весьма полезным при смешении явной и неявной схем.
Скоро продолжим.
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой