SQL Server (T-SQL) で JSON キーの名前を変更するにはどうすればよいですか?
SQL Server で JSON_MODIFY()
関数を使用して JSON ドキュメントを変更している場合は、key/value の
value を変更することに慣れているかもしれません。
属性の一部。しかし、key
部分も変更できることをご存知ですか?
これを行うコツは、値を新しいキーにコピーしてから削除することです。古い鍵。
これが私が言いたいことの基本的な例です。
-- Declare a variable and assign some JSON to it DECLARE @data NVARCHAR(50)='{"Name":"Homer"}' -- Print the current JSON PRINT @data -- Rename the key (by copying the value to a new key, then deleting the old one) SET @data= JSON_MODIFY( JSON_MODIFY(@data,'$.Handle', JSON_VALUE(@data,'$.Name')), '$.Name', NULL ) -- Print the new JSON PRINT @data
結果:
{"Name":"Homer"} {"Handle":"Homer"}
これにより、元のキー/値のペアが出力され、その後に新しいキー/値のペアが出力されます。
キーの「名前を変更した」と言えますが、実際には新しいキーを作成し、既存の値をその新しいキーにコピーし、古いキーを NULL に設定して削除しただけです。
この例では、JSON_VALUE()
関数を使用して値を抽出します。
Number
データを新しいキーにコピーするときは注意が必要です。デフォルトでは、SQL Server は二重引用符で囲みます。これはあなたが望んでいることかもしれませんし、そうでないかもしれません。
ただし、数値をコピーする場合は、数値のまま (つまり、二重引用符なしで) そのままにしておく必要があるでしょう。この場合、CAST()
関数を使用して数値データ型に変換する必要があります。例を次に示します。
-- Declare a variable and assign some JSON to it DECLARE @data NVARCHAR(50)='{"Residents":768}' -- Print the current JSON PRINT @data -- Rename the key (by copying the value to a new key, then deleting the old one) SET @data= JSON_MODIFY( JSON_MODIFY(@data,'$.Population', CAST(JSON_VALUE(@data,'$.Residents') AS int)), '$.Residents', NULL ) -- Print the new JSON PRINT @data
結果:
{"Residents":768} {"Population":768}
つまり、結果は数値になります。
この例から CAST()
関数を削除すると、次の結果が得られます:
-- Declare a variable and assign some JSON to it DECLARE @data NVARCHAR(50)='{"Residents": 768}' -- Print the current JSON PRINT @data -- Rename the key (by copying the value to a new key, then deleting the old one) SET @data= JSON_MODIFY( JSON_MODIFY(@data,'$.Population', JSON_VALUE(@data,'$.Residents')), '$.Residents', NULL ) -- Print the new JSON PRINT @data
結果:
{"Residents": 768} {"Population":"768"}
Thereforeこの場合、キーの名前を変更しただけでなく、(JSON) データ型も数値から文字列に変更しました。
注、JSON は異なる数値タイプを区別しません。数値型は数値の 1 つだけです。
key キーとスペース
この例では、既存のキーの名前をスペースを含む新しいキーに変更しました (2 つの単語で構成されています)スペースで区切ります)。
新しいキーにはスペースが含まれているため、キーを二重引用符で囲む必要があります。これを行わないとエラーが発生します。
-- Declare a variable and assign some JSON to it DECLARE @data NVARCHAR(50)='{"Population":68}' -- Print the current JSON PRINT @data -- Rename the key (by copying the value to a new key, then deleting the old one) SET @data= JSON_MODIFY( JSON_MODIFY(@data,'$."Average IQ"', CAST(JSON_VALUE(@data,'$.Population') AS int)), '$.Population', NULL ) -- Print the new JSON PRINT @data
結果:
{"Population":68} {"Average IQ":68}
ネストされたプロパティ
プロパティがネストされている場合、問題はありません。ドット表記を使用して参照してください。
DECLARE @data NVARCHAR(4000) SET @data=N'{ "Suspect": { "Name": "Homer Simpson", "Hobbies": ["Eating", "Sleeping", "Base Jumping"] } }' PRINT @data SET @data= JSON_MODIFY( JSON_MODIFY(@data,'$.Suspect.Qualifications', JSON_QUERY(@data,'$.Suspect.Hobbies')), '$.Suspect.Hobbies', NULL ) PRINT @data
結果:
{ "Suspect": { "Name": "Homer Simpson", "Hobbies": ["Eating", "Sleeping", "Base Jumping"] } } { "Suspect": { "Name": "Homer Simpson" ,"Qualifications":["Eating", "Sleeping", "Base Jumping"]} }
この例では、前の値の代わりに JSON_QUERY()
関数を使用して値を抽出していることにも気づくでしょう。例として JSON_VALUE()
を使用します。
これは、この場合、配列を抽出しており、JSON_VALUE()
は配列全体を抽出できないためです (配列から抽出できるのはスカラー値のみです)。一方、JSON_QUERY()
関数はオブジェクトと配列を抽出しますが、スカラー値は抽出しません。
関連する推奨事項: 「SQL チュートリアル 」「MySQL チュートリアル 」
以上がSQL Server (T-SQL) で JSON キーの名前を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

「OracleSQLでの除算演算の使用方法」 OracleSQLでは、除算演算は一般的な数学演算の1つです。データのクエリと処理中に、除算演算はフィールド間の比率を計算したり、特定の値間の論理関係を導出したりするのに役立ちます。この記事では、OracleSQL での除算演算の使用法を紹介し、具体的なコード例を示します。 1. OracleSQL における除算演算の 2 つの方法 OracleSQL では、除算演算を 2 つの異なる方法で実行できます。

Oracle と DB2 は一般的に使用される 2 つのリレーショナル データベース管理システムであり、それぞれに独自の SQL 構文と特性があります。この記事では、Oracle と DB2 の SQL 構文を比較し、相違点を示し、具体的なコード例を示します。データベース接続 Oracle では、次のステートメントを使用してデータベースに接続します: CONNECTusername/password@database DB2 では、データベースに接続するステートメントは次のとおりです: CONNECTTOdataba

解決策: 1. ログインしているユーザーがデータベースにアクセスまたは操作するための十分な権限を持っているかどうかを確認し、ユーザーが正しい権限を持っているかどうかを確認します; 2. SQL Server サービスのアカウントに指定されたファイルまたはデータベースにアクセスする権限があるかどうかを確認します。 3. 指定されたデータベース ファイルが他のプロセスによって開かれているかロックされているかどうかを確認し、ファイルを閉じるか解放して、クエリを再実行します。管理者として試してください。Management Studio をなどとして実行します。

PHP 配列を JSON に変換するためのパフォーマンスの最適化方法には、JSON 拡張機能と json_encode() 関数の使用、文字エスケープを回避するためのバッファーの使用、およびサードパーティのエンコード結果の使用の検討が含まれます。 JSONエンコーディングライブラリ。

データベース技術コンテスト: Oracle と SQL の違いは何ですか?データベース分野では、Oracle と SQL Server の 2 つは非常に評判の高いリレーショナル データベース管理システムです。どちらもリレーショナル データベースのカテゴリに属しますが、両者の間には多くの違いがあります。この記事では、Oracle と SQL Server の違い、実際のアプリケーションにおけるそれらの機能と利点について詳しく説明します。まず、Oracle と SQL Server の間には構文に違いがあります。

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック

Oracle と SQL の違いとアプリケーション シナリオの分析 データベース分野では、Oracle と SQL は頻繁に言及される 2 つの用語です。 Oracle はリレーショナル データベース管理システム (RDBMS) であり、SQL (StructuredQueryLanguage) はリレーショナル データベースを管理するための標準化された言語です。これらはある程度関連していますが、いくつかの大きな違いもあります。まず、定義上、Oracle は特定のデータベース管理システムであり、以下で構成されます。
