問題タブ [for-xml]
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.
sql - Sql ForXml; コンマ区切りのリストまたは空の文字列を返すフィールドを連結する
FOR XML の使用に関するいくつかの SO の質問に目を通しましたが、クエリに固有のものを見逃したか、見つけられませんでした。
幸いなことに、またはおそらくそうではないかもしれませんが、データを送信する必要があるサービスは、テーブルのフィールドを要素ではなく属性として送信する必要があります。これは、FOR XML AUTO を使用できることを意味します。ただし、正しい sql を作成して達成する方法がわからないことがいくつかあります。そのためのアドバイスを歓迎します。
一部のフィールド (たとえば、Log1、Log2、および Log3 という名前の 3 つがあるとします) は、ログのために引数として呼び出される 1 つの属性として返される必要があります。3 つのログ フィールドがすべて Null の場合は、空の文字列にする必要があります。データが含まれている場合は、区切り文字としてコンマで連結する必要があります。単純な合体はここでの答えではないと思いますが、他に何ができるかは完全にはわかりません。
私が言ったように、私はいくつかの提案を歓迎します。ありがとう。
編集
申し訳ありませんが、支援するためにいくつかのSQLを追加する必要がありました。
Log1、Log2、および Log3 はログになり、すべてが null の場合は空の文字列になり、データが含まれている場合はカンマ区切りのリストになります。
EDIT2 (機密保持のために VesselName と Owner を削除した現在の出力)
ログの値が null であるため、何も返されません。合体の形式を使用して、空の文字列またはコンマ区切りのリストを生成できるかどうかはわかりません。ticketNumber をトリミングする必要があることはわかっています。
sql-server - SQLを正しくフォーマットすると、予想されるxml出力が生成されます
仲間の SO ユーザーのおかげで、私は FOR XML を進歩させていますが、SQL 構文を正しく理解できていないことは明らかです。
次のSQLがあるとしましょう
実行すると、出力として次のものが生成されます
私が本当に望んでいたのは次のことでした
実際、SQLに3番目のセクションを追加して、最終的にxmlで終わるようにしたいと思います
元の SQL クエリのどこが間違っているか指摘してもらえますか?
ありがとう
sql - 詳細行がヘッダー行と一致するために欠落している条件は何ですか
次のクエリ。
この出力を生成します。
これは、実際には関連する販売ラインにのみ表示されるはずの詳細ラインが両方の販売ラインで複製されているという事実を除いて、私が望んでいたのとほぼ同じです。ランディング ID を一致させることは、明らかに正しい詳細線を引き出すことです。
ありがとう
編集: SQL クエリを次のように変更しました。
次の出力が生成されます。
少なくとも詳細行は販売行と一致していますが、詳細行ごとに個別の販売行が生成されています。明らかに小さなビットが 1 つ欠けています。Group By LandingHeaders.LandingId を試しましたが、さらに問題が発生するようです。
sql - T-SQL: 自動インクリメント変数を使用する方法
一連の複雑な XML クエリを作成しています。それらの多くは、Select x , (select y from tbl2 for xml) from table1 for xml
などのような階層クエリです。自動インクリメント変数を追加して、次のようにここに追加する方法があればいいのにと思います。
変数 @incr が、使用するたびに増加する整数を返すことを望みます。
これに対する簡単な解決策はありますか?
sql - 複数の同じ名前のノードを生成するための SQL FOR XML
同じ名前のサブノードを作成しようとしていますが、for xml を使用してテーブル内の異なる列から異なるデータを取得しています。しかし、作成したクエリから期待される出力が得られません。
このクエリを作成する正しい方法を教えてもらえますか?
以下に使用するサンプル テーブルと FOR XML クエリを示します。
出力:
期待される出力:
sql - FOR XML EXPLICIT を使用する場合は、xmlns="" 名前空間宣言を削除します
以下を使用して XML ドキュメントを生成していますFOR XML EXPLICIT
。
そして、そのような応答を取得します:
xmlns
問題は、属性が必要ないことです。
解決策を見つけましたが、それはクラッジのようです。
問題を解決するためのよりエレガントな方法はありますか?
を使用して提供しないでくださいFOR XML PATH/RAW/AUTO
。
EXPLICIT
モードは必須です。