В моей базе данных json (ExtraData
) сохраняется. Я хочу прочитать json и извлечь некоторые имена файлов, хранящихся там. В этом json сохраняются некоторые имена файлов изображений:
"UploadedPictures": [
{
"Type": 0,
"Filename": "9d349bf8222c4fb6a5fe883dbcd9b7b8.jpeg",
"Description": "Image 1"
},
{
"Type": 0,
"Filename": "b2d296a4ee6c49ce80bad90339bdeec1.jpeg",
"Description": "Image 2"
},
{
"Type": 0,
"Filename": "d088f43c1a8043cd82533f544dbc7b21.jpeg",
"Description": "Image 3"
}
],
Я хочу прочитать эти имена файлов, поскольку я получаю следующую ошибку:
Подзапрос возвратил более 1 значения , Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.
Мой SQL запрос:
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP (1000)
[ID]
,[CreatedAt]
,[PhoneNumber]
,[FirstName]
,[LastName]
,[HouseNumber]
,[City]
,[PostalCode]
,[Street]
,[ExtraData]
,(SELECT T.Filename
FROM OpenJson(JSON_QUERY([ExtraData], '$.UploadedPictures'))
WITH (Filename varchar(200) '$.Filename') T ) AS FileName
FROM
[LD].[dbo].[Database]
Однако, когда я делаю TOP(1)
, я получаю первое имя файла:
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP (1000)
[ID]
,[CreatedAt]
,[PhoneNumber]
,[FirstName]
,[LastName]
,[HouseNumber]
,[City]
,[PostalCode]
,[Street]
,[ExtraData]
,(SELECT TOP(1) T.Filename
FROM OpenJson(JSON_QUERY([ExtraData], '$.UploadedPictures'))
WITH (Filename varchar(200) '$.Filename') T) AS FileName
FROM
[LD].[dbo].[Database]
Как я могу получить все имена файлов?