問題タブ [for-xml-path]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
20550 参照

sql-server - FOR XML PATH(''): 「特殊」文字のエスケープ

このコードは基本的に、ある文字列の位置に基づいて文字を別の文字列の同じ位置にある文字に変換し、テーブルのすべての行に対して実行します。

これを実行すると(簡易版):

私は以下を取得します:

ただし、次のものが必要です。

以外REPLACE()に、スペースを適切に表示する方法はありますか? これは、実際のコードでは改行でも発生します。

これをより良い方法で書き直すことはできますか?基本的にFOR XML PATH('')、個々の行の値を連結するために を使用しました。

0 投票する
2 に答える
5434 参照

sql-server - SQL Server 2005 は、サブ選択の問題でユニオンを使用して XML パスを選択します

私はSQLサーバーの「XMLパスの選択」クエリの経験はかなりありますが、奇妙な問題に遭遇しました。

次のクエリは正常に機能します。

これにより、(ダミー データセットの場合) 次の XML が生成されます。

この(より大きな部分の)ステートメントの結果では、2番目のキーフィールドも必要です:

だから私はユニオン選択で私の(サブ)クエリを次のように変更しました:

しかし、「サブクエリがEXISTSで導入されていない場合、選択リストで指定できる式は1つだけです」というエラーが表示されます。

XMLパスウィッチの結果が複数の要素になるサブクエリに複数のレコードを含めることができることを私は知っています。しかし、これが労働組合でできない理由がわかりません。

私の(サブ)クエリで2つのキーフィールドを使用してXMLを達成する方法を誰かが正しい方向に導くことができますか?

どうもありがとうございました。

0 投票する
5 に答える
12757 参照

sql - SQL Server 2005 での「FOR XML PATH」を使用した XML 宣言

以下は、私が既に作成したクエリの簡易バージョンです。クエリは正常に動作しますが、生成された XML の先頭にある XML 宣言を取得する方法がわかりません。私は複数のことを試し、Googleで広範囲に検索しましたが、残念ながら、これを行う方法を見つけることができないようです...またはそれが可能であったとしても。

私に与える...

欲しい...

あなたが貸すことができるかもしれないどんな助けでも前もって感謝します.

0 投票する
1 に答える
10361 参照

sql-server - 要素中心の FOR XML PATH クエリに属性を追加する方法

電子メールの本文に含まれ、sp_send_dbmail を使用して送信される HTML を作成しています。一部の列を右揃えにしたいと思います。これを行う簡単な方法はありますか (FOR XML EXPLICIT を使用して書き直す以外に) ?

0 投票する
4 に答える
1039 参照

sql - CDATA セクションは本当に不要ですか?

この質問は、開発者の Michael Rys が、CDATA セクションの解析を FOR XML PATH に含めることをかなり好戦的に拒否したことによって引き起こされました

HTML のナゲットを CDATA ノードに保存したり、特殊文字や扱いにくい文字を使用する必要があるその他のコンテンツを保存したりしました。しかし、Rys の論争の的となっている主張に異議を唱える資格はないと思います。なぜなら、私が便宜上 CDATA を使用したシナリオでは技術的には Rys が正しいと思うからです。

開発者がインターネットで FOR XML PATH を使用して CDATA セグメントをレンダリングする方法についてアドバイスを求めているとき、回答者は常に FOR XML EXPLICIT を使用するように指示しています。Rysが「クエリ地獄の"。

誰もが提案できるすべてのユースケースで本当にCDATAなしでできるのであれば、今後はうめき声をやめてCDATAの使用を拒否すべきだと思います。しかし、CDATA が必須である明確に定義されたケースがある場合、Rys は、この質問の一番上のリンクで、それを FOR XML PATH に組み込むことをすでに約束しています。

それで、それはどれですか?CDATA セクションは本当に過去の遺物ですか? それとも、Rys は指を抜いて、FOR XML PATH で CDATA を解析できるようにする必要がありますか? それまでの間、FOR XML PATH を取得して CDATA セクションを返すためのハックはありますか?

0 投票する
1 に答える
806 参照

sql - 動的SQLのSQLサーバーでFORXMLPATHからの空白の出力を停止するにはどうすればよいですか?

私はデータボールトのスクリプトを生成しようとしていました。以下は、多対多の関係のテーブルを生成する動的SQLです。

コメント--GETPRIMARYKEYS --からの定義にソーステーブルの主キーを追加している部分には、@LOAD_DATE_RSにいくつかの問題があります。その部分が空白の出力を返す場合(つまり、余分な主キーを持つテーブルがない場合)、出力全体が空白になります。これを止めるにはどうすればよいですか?その部分が空白の場合でも、必要なテーブルを取得するために実行できるように、他の動的SQLをビルドする必要があります。助けてください

0 投票する
2 に答える
9415 参照

sql-server - SQL FORXMLPATHリストとCOUNT

私は次のようなテーブルを持っています:

返すクエリが必要です:

つまり、日付ごとの名前のリストとカウントが必要です。私が思いつくことができる最高のものは次のとおりです。

より洗練されたクエリはありますか?

0 投票する
2 に答える
1221 参照

sql - さまざまなテーブル列を UNION で結合し、XML を使用して列名を区別します

これは正しい結果を返すように機能しますが、

結果:

問題は、UNION が原因で、使用しようとしているさまざまな命名を一緒にすると結果が区別されないことです。両方を 1 つの結果セットの下に異なる名前で表示するにはどうすればよいですか? XMLでこれを行うことを考えていますが、方法がわかりませんか?

さまざまなクエリをさまざまな結果/行数と組み合わせて、すべてを 1 つの大きな XML の下に配置する最適な方法は何ですか?

わかりました、私が思いつくことができる最高のものは次のとおりです:

結果が得られます(これもユニオンのおかげです)

またはこれらの行の何か:

0 投票する
1 に答える
888 参照

sql - null値にもかかわらず存在するXml要素

私はかなり大きいSELECT ... FOR XML PATHです。ご存知のように、デフォルトでは、null値を持つフィールドに対応するxml要素は結果のxmlツリーに表示されません。それは私にとって本当の問題のようであり、値がnullであるかどうかに関係なく、常にすべての要素を表示させたいと思っています。

各フィールドを1つずつ囲まずにISNULL(...,'')(私のSELECTでは50を超えるフィールド!) 、スイッチを使用するようにに変更FOR XML PATHせずに(残念ながら、でのみ使用可能)、それを実現する方法はありますか?FOR XML ELEMENTSXSINILELEMENTS

ちなみに、これら2つの完全に統計化されていないソリューションでは、それぞれ異なる出力が得られると思い<fieldname></fieldname>ます<fieldname/>。可能であれば最初のものをお勧めしますが、とにかくあなたの貴重な提案を読みたいと思っています。

前もって感謝します !:-)

0 投票する
1 に答える
5540 参照

xml - FOR XML PATH および xsi:nil 属性

みんなおはよう、

FOR XML PATH を使用して .xml ファイルを出力する大きなクエリがあります。基本的にルートを表すメインの選択があります。

次に、このメイン選択内にネストされた選択を続けます。

ただし、for xml パスに配置された要素 xsinil 引数は、含まれるサブクエリには影響しません。つまり、Level1 要素は単なる閉じたタグです。これを xsi:nil="true" として表示する必要があります。

要素 xsinil 引数を for xml パスステートメントに追加することでこれを実現できます。

これの問題は、名前空間の宣言がサブクエリ レベルで繰り返されることです。

要素 xsinil を使用する例はたくさんありますが、namespace 宣言を繰り返さずにサブクエリに適用する例はありません。

確認するために、次の出力を探しています。

あなたが助けてくれることを願っています!