J'ai une table Books
avec deux colonnes Id
, BookCategory
dans une database SQL Server, où Id
est la key primaire et BookCategory
contient un object JSON.
Cette ma table Livres
BookCategory
d'get la valeur de colonne de BookCategory
table en BookCategory
que Category
seulement. Pour cela, j'ai écrit la requête SQL suivante mais je n'ai pas eu. N'importe qui a une idée sur le point d'get la valeur de l'object JSON comme valeur de colonne normale comme résultat de la requête.
SELECT Id, BookCategory.Name AS Name, BookCategory.Category AS Category FROM Books
Donc le résultat ressemblera à:
Id=1 Name=CA Category=cs
Et j'obtiens une erreur dans SQL Server Management Studio:
L'identificateur en plusieurs parties "BookCategory.Name" n'a pas pu être lié.
Toute aide pour get le même résultat de la table ci-dessus Livres.
Merci d'avance.
CA devrait etre
SELECT Id, JSON_VALUE(BookCategory,'$.Name') AS Name, JSON_VALUE(BookCategory,'$.Category') AS Category FROM Books
Docs: https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server
Vous devez utiliser des fonctions spéciales pour travailler avec JSON dans SQL (JSON est pris en charge dans MS-SQL 2016). Table.column
notation Table.column
est pour les types de colonnes SQL standard tels que INTEGER
ou VARCHAR
etc.