ホームページ データベース mysql チュートリアル SQL Server (T-SQL) で JSON キーの名前を変更するにはどうすればよいですか?

SQL Server (T-SQL) で JSON キーの名前を変更するにはどうすればよいですか?

Apr 03, 2019 pm 01:52 PM
json sql

SQL Server で JSON_MODIFY() 関数を使用して JSON ドキュメントを変更している場合は、key/value の value を変更することに慣れているかもしれません。 属性の一部。しかし、key 部分も変更できることをご存知ですか?

SQL Server (T-SQL) で JSON キーの名前を変更するにはどうすればよいですか?

これを行うコツは、値を新しいキーにコピーしてから削除することです。古い鍵。

これが私が言いたいことの基本的な例です。

-- 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

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

Oracle SQLでの除算演算の使用法 Oracle SQLでの除算演算の使用法 Mar 10, 2024 pm 03:06 PM

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

Oracle と DB2 の SQL 構文の比較と相違点 Oracle と DB2 の SQL 構文の比較と相違点 Mar 11, 2024 pm 12:09 PM

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

SQL の 5120 エラーを解決する方法 SQL の 5120 エラーを解決する方法 Mar 06, 2024 pm 04:33 PM

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

PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント May 04, 2024 pm 06:15 PM

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

データベース技術コンテスト: Oracle と SQL の違いは何ですか? データベース技術コンテスト: Oracle と SQL の違いは何ですか? Mar 09, 2024 am 08:30 AM

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

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? May 06, 2024 pm 10:09 PM

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

OracleとSQLの違いとアプリケーションシナリオの分析 OracleとSQLの違いとアプリケーションシナリオの分析 Mar 08, 2024 pm 09:39 PM

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

See all articles