FOR XMLのRAWモードのコード例の詳細説明
説明:
raw モードは、クエリ結果セットの各行を
を持つ XML 要素に変換します。 XML 階層を生成するには
デフォルトでは、null 以外の値はすべて < の属性にマッピングされます。 row> 要素。
クエリ結果セット内のデータを
構文:要素の子要素に変換する必要がある場合は、
FOR XML RAW [ ('ElementName') ] [ <CommonDirectives> [ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ] [ , ELEMENTS [ XSINIL | ABSENT ] ] <CommonDirectives> ::= [ , BINARY BASE64 ] [ , TYPE ] [ , ROOT [ ('RootName') ] ]
の例を参照してください。 :
テーブル Base を作成します。テーブルの構造は次のとおりです:ELEMENTSディレクティブを指定することで、結果セットを次の形式で表示します子要素です。列名
id データ型 空を許可 本体 int allows id nvarchar( 50) では、次のようにテーブルデータを挿入できます: body
1 aaaa 2 bbbb 3 cccc 4 A. XML rawモードで使用する 例:
/* 结果: <row id="1" body="aaaa" /> <row id="2" body="bbbb" /> <row id="3" body="dddd" /> <row id="4" /> */select * from base for xml raw;
その理由は、elementsディレクティブを使用する際、以下のコマンドを指定しないとデフォルトでAbscentが使用されるためです。このときnull値の要素は作成されませんこの例文ではid 4のbodyが表示されていないことに気付きました。
以下の例では、要素ディレクティブとxsinilディレクティブを同時に指定することでxmlにnull値を表示することができます。 null を生成する時間 列の値の要素
/* 结果: <row> <id>1</id> <body>aaaa</body> </row> <row> <id>2</id> <body>bbbb</body> </row> <row> <id>3</id> <body>dddd</body> </row> <row> <id>4</id> </row> */select * from base for xml raw,elements;ログイン後にコピー
はrootを使って指定できます。ルートディレクティブのデフォルトのルート要素はデータごとに、
要素として表示されるため、
要素の名前を変更する方法。別の名前。
C.
要素の名前を変更します
すべての XML ファイルにはルート要素があることはよく知られています。
D 生成された XML を指定します。 for for xml ルート要素
これまでのところ、見てきたようです。実際、前の文はさらに変更できます/* 结果: <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>1</id> <body>aaaa</body> </row> <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>2</id> <body>bbbb</body> </row> <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>3</id> <body>dddd</body> </row> <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>4</id> <body xsi:nil="true" /> </row> */select * from base for xml raw,elements xsinil;ログイン後にコピー現時点では、生成されたxmlの結果は非常に良いようですが、データベースのbodyカラムを変更したい となるカラム名、ルート要素名、要素名を指定した場合、どのようなデメリットが発生するのでしょうか?上記の結果では、各データを区別できないようで、ID は null 値 4 です。表示されません。次の文を参照してください。
/* 结果: <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>1</id> <body>aaaa</body> </baseinfo> <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>2</id> <body>bbbb</body> </baseinfo> <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>3</id> <body>dddd</body> </baseinfo> <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id>4</id> <body xsi:nil="true" /> </baseinfo> */select * from base for xml raw('baseinfo'),elements xsinil;ログイン後にコピー
/* 结果: <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <baseinfo> <id>1</id> <body>aaaa</body> </baseinfo> <baseinfo> <id>2</id> <body>bbbb</body> </baseinfo> <baseinfo> <id>3</id> <body>dddd</body> </baseinfo> <baseinfo> <id>4</id> <body xsi:nil="true" /> </baseinfo> </base> */select * from base for xml raw('baseinfo'),root('base'),elements xsinil;ログイン後にコピー結果が別の方法で表示されるように変更しましょう。
/* 结果: <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <baseinfo> <id>1</id> <data>aaaa</data> </baseinfo> <baseinfo> <id>2</id> <data>bbbb</data> </baseinfo> <baseinfo> <id>3</id> <data>dddd</data> </baseinfo> <baseinfo> <id>4</id> <data xsi:nil="true" /> </baseinfo> </base> */select id,body data from base for xml raw('baseinfo'),root('base'),elements xsinil;ログイン後にコピー
必要に応じて組み合わせて、必要な結果を生成できます。
SQLServer2005 では、XML データ型がすでにサポートされているため、XML データ型で FOR XML クエリの結果を返す TYPE 命令を記述することができます。例は次のとおりです:
/* 结果: 1aaaa2bbbb3dddd4 */ --因为id为int类型,为使id不出现列名,我们使id+0 --因为body为nvarchar类型,为使body不出现列名,我们使body+''select id+0,body+'' from base for xml raw(''), elements;ログイン後にコピー
最後に、一般的な例を使用して、for XML raw モードのアプリケーションを紹介します。Student テーブル Student を作成します。テーブル構造は次のとおりです:
列名。
データ型 null を許可します
sidint
allows
namenvarchar(50)
李思Allow 次のようにテーブル データを挿入します: id 名前 2 1 張三 3
王呉 建课程表sclass,表结构如下:
列名 数据类型 允许空 cid int 允许 name nvarchar(50) 允许 插入表数据如下:
id name 1 语文 2 数学 3 英语 建student_class表,表结构如下:
列名 数据类型 允许空 sid int cid int 插入数据如下:
cid sid 1 1 1 2 1 3 2 1 3 2 3 3 至此,数据结果是:
姓名 课程 张三 语文 张三 数学 张三 英语 李四 语文 王五 数学 王五 英语 我们需要最后的结果形式如下:
姓名 课程 张三 语文,数学,英语 李四 语文 王五 数学,英语 该如何实现呢?
/* 结果: 张三 语文,数学,英语 李四 语文 王五 数学,英语 */select [name], stuff( ( select ','+[name] from sclass where cid in ( select cid from student_class where student.sid=student_class.sid ) for xml raw(''),elements ), 1,1,'') sclassfrom studentログイン後にコピー以上がFOR XMLのRAWモードのコード例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。![]()
ホットAIツール
![]()
Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ
![]()
AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。
![]()
Undress AI Tool
脱衣画像を無料で
![]()
Clothoff.io
AI衣類リムーバー
![]()
AI Hentai Generator
AIヘンタイを無料で生成します。
![]()
人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)4週間前 By 尊渡假赌尊渡假赌尊渡假赌R.E.P.O.最高のグラフィック設定4週間前 By 尊渡假赌尊渡假赌尊渡假赌アサシンのクリードシャドウズ:シーシェルリドルソリューション2週間前 By DDDR.E.P.O.誰も聞こえない場合はオーディオを修正する方法1 か月前 By 尊渡假赌尊渡假赌尊渡假赌R.E.P.O.チャットコマンドとそれらの使用方法1 か月前 By 尊渡假赌尊渡假赌尊渡假赌![]()
ホットツール
![]()
メモ帳++7.3.1
使いやすく無料のコードエディター
![]()
SublimeText3 中国語版
中国語版、とても使いやすい
![]()
ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
![]()
ドリームウィーバー CS6
ビジュアル Web 開発ツール
![]()
SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
![]()
ホットトピック
Gmailメールのログイン入り口はどこですか?7529
15
CakePHP チュートリアル1378
52
Steamのアカウント名の形式は何ですか81
11
NYTの接続はヒントと回答です21
76
See all articleskernel_security_check_failure ブルー スクリーンを解決する 17 の方法 Feb 12, 2024 pm 08:51 PM
Kernelsecuritycheckfailure (カーネルチェック失敗) は比較的一般的な停止コードですが、理由が何であれ、ブルースクリーンエラーは多くのユーザーを悩ませます、当サイトでは 17 種類のエラーをユーザーに丁寧に紹介します。 kernel_security_check_failure ブルー スクリーンに対する 17 の解決策 方法 1: すべての外部デバイスを削除する 使用している外部デバイスが Windows のバージョンと互換性がない場合、Kernelsecuritycheckfailure ブルー スクリーン エラーが発生することがあります。これを行うには、コンピュータを再起動する前に、すべての外部デバイスを取り外しておく必要があります。
PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM
XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。
Python を使用した XML データのマージと重複排除 Aug 07, 2023 am 11:33 AM
Python を使用した XML データのマージと重複排除 XML (eXtensibleMarkupLanguage) は、データの保存と送信に使用されるマークアップ言語です。 XML データを処理するとき、複数の XML ファイルを 1 つにマージしたり、重複データを削除したりする必要がある場合があります。この記事では、Python を使用して XML データのマージと重複排除を実装する方法と、対応するコード例を紹介します。 1. XML データのマージ 複数の XML ファイルがある場合、それらをマージする必要があります。
Python を使用した XML データのフィルタリングと並べ替え Aug 07, 2023 pm 04:17 PM
Python を使用した XML データのフィルタリングと並べ替えの実装 はじめに: XML は、データをタグと属性の形式で保存する、一般的に使用されるデータ交換形式です。 XML データを処理するとき、多くの場合、データのフィルタリングと並べ替えが必要になります。 Python には、XML データを処理するための便利なツールとライブラリが多数用意されています。この記事では、Python を使用して XML データをフィルタリングおよび並べ替える方法を紹介します。 XML ファイルの読み取り 始める前に、XML ファイルを読み取る必要があります。 Python には XML 処理ライブラリが多数ありますが、
Python で XML データを CSV 形式に変換する Aug 11, 2023 pm 07:41 PM
Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です
PHP を使用して XML データをデータベースにインポートする Aug 07, 2023 am 09:58 AM
PHP を使用した XML データのデータベースへのインポート はじめに: 開発中、さらなる処理や分析のために外部データをデータベースにインポートする必要がよくあります。一般的に使用されるデータ交換形式として、XML は構造化データの保存と送信によく使用されます。この記事では、PHP を使用して XML データをデータベースにインポートする方法を紹介します。ステップ 1: XML ファイルを解析する まず、XML ファイルを解析し、必要なデータを抽出する必要があります。 PHP には XML を解析するためのいくつかの方法が用意されており、最も一般的に使用されるのは Simple を使用する方法です。
Python は XML と JSON 間の変換を実装します Aug 07, 2023 pm 07:10 PM
Python は XML と JSON 間の変換を実装します はじめに: 日常の開発プロセスでは、異なる形式間でデータを変換する必要があることがよくあります。 XML と JSON は一般的なデータ交換形式であり、Python ではさまざまなライブラリを使用して XML と JSON の間で変換できます。この記事では、一般的に使用されるいくつかの方法をコード例とともに紹介します。 1. Python で XML を JSON に変換するには、xml.etree.ElementTree モジュールを使用できます。
Python を使用した XML でのエラーと例外の処理 Aug 08, 2023 pm 12:25 PM
Python を使用した XML でのエラーと例外の処理 XML は、構造化データの保存と表現に使用される一般的に使用されるデータ形式です。 Python を使用して XML を処理すると、エラーや例外が発生することがあります。この記事では、Python を使用して XML のエラーと例外を処理する方法を紹介し、参考用のサンプル コードをいくつか示します。 Try-Except ステートメントを使用して XML 解析エラーを捕捉する Python を使用して XML を解析すると、時々、次のようなエラーが発生することがあります。
![]()