SQL Serverデータベースに2つの列Books
、Id
を持つテーブルBookCategory
があります。ここで、Id
は主キー、BookCategory
JSONオブジェクトが含まれています。
これは私のテーブル Books
テーブルBookCategory
列の値をCategory
としてのみ取得しようとしています。そのために、次のSQLクエリを記述しましたが、取得できませんでした。 JSONオブジェクトの値をクエリの結果として通常の列の値として取得するアイデアがあります。
SELECT
Id, BookCategory.Name AS Name,
BookCategory.Category AS Category
FROM
Books
したがって、結果は次のようになります。
Id=1
Name=CA
Category=cs
SQL Server Management Studioでエラーが発生します。
マルチパート識別子「BookCategory.Name」をバインドできませんでした。
上記の表の本と同じ結果を得るのに役立つ。
前もって感謝します。
そのはず
SELECT
Id,
JSON_VALUE(BookCategory,'$.Name') AS Name,
JSON_VALUE(BookCategory,'$.Category') AS Category
FROM
Books
ドキュメント: https://docs.Microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server
SQLでJSONを使用するには、特別な関数を使用する必要があります(JSONはMS-SQL 2016でサポートされています)。 Table.column
表記は、INTEGER
またはVARCHAR
などの通常のSQL列タイプ用です。