問題タブ [cross-apply]
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 - 表演算子 APPLY を使用する場合
table operator を理解しようとしていますAPPLY
。
次に例を示します。
私の主なハードルは、いつ使用するかを理解することAPPLY
です。だから、実装された
を使用して上記と同じ結果を得るのがどれほど難しいのだろうかと思いますか? クエリを大幅に短くしたり、読みやすくしたりしますか
?
この例が を使用する大きな利点を示さない場合、使用する利点がある明確な例は何ですか?standard sql
sql-server 2005
APPLY
APPLY
APPLY
oracle - キーワードの欠落エラーを与えるクロス適用
以下のクエリでは、キーワードの欠落エラーが発生しています..
ここに私の機能があります:
どこが間違っているのかわかりません。私はこれに本当に慣れていません。
tsql - sp_executesql とユーザー定義のスカラー関数
以下の表では、次のようないくつかの条件を保存しています。
次に、通常、2 番目のテーブルには次のレコードがあります。
そして、必要なのは、正しい条件を使用してこれらの値を比較し、結果を保存することです (追加の列で、false の場合は「0」、true の場合は「1」としましょう)。
これをストア プロシージャで実行し、基本的に数から数百のレコードを比較します。
可能な解決策は、動的ステートメントを構築する各行に sp_executesql を使用することです。もう 1 つは、独自のスカラー関数を作成し、クロス適用を使用して簡単な行に対して呼び出すことです。
どちらがより効率的な方法か誰にもわかりますか?
注: これに答える最善の方法は、2 つのソリューションを作成してテストすることであることはわかっていますが、キャッシングや SQL 内部最適化などの他のものに基づいて、この答えが得られることを願っています。これはより大きな問題の一部にすぎないためです。
performance - CROSS APPLY が実行合計に対して遅すぎる - TSQL
CROSS APPLY の実行が遅すぎるため、以下のコードを参照してください。
CROSS APPLY を削除して、より高速に実行される何かを追加するにはどうすればよいですか? SQL Server 2008 R2 を使用していることに注意してください。
sql-server-2008 - ピボットされた列とピボットされていない列が複数あるTSQL PIVOT?
私はこのサンプルデータを持っています:
私はこの形式でそれを持っている必要があります:
次のコードを試してみましたがNULL
、あるべきではないいくつかの値を取得し、出力が間違っています。私はまだクロス適用とピボットの一般的な使用法を理解しようとしています。
これを解決するのに役立つ助けがあれば大歓迎です。
sql - TOP、DESC、および CROSS APPLY を使用すると、このクエリがどのように高速化されますか?
この質問に関連: WHERE 句と ON 句の実行はどのような順序で行われますか?
私はAPPLYについてこのページを読んでいました:
また、CROSS APPLY、TOP、および DESC がこのクエリを高速化する方法がわかりません。
元のクエリ:
より高速なクエリ:
わからないので具体的に何を質問すればいいのかわからない。
sql - SQL Server の相互適用が機能していませんか?
http://sqlfiddle.com/#!3/78273/1
内部結合と似ていますが、関数で動作するため、クロス適用を学習しようとしていました。
上記のクエリでは、注文 d.id desc は 30 である最上位の 1 番目の ID のみを提供し、dept id = 30 の従業員を返す必要があるため、dept=30 のみを取る必要があると想定していますが、すべての行とすべての深い。
クエリの何が問題なのか、または相互適用の概念の解釈が間違っています。
sql - SQL Server 2000 で、入力パラメータをテーブルとして受け取る関数を作成することはできますか?
以下に、データを操作して新しいデータベース テーブルを生成するサンプル データがあります。
以下の画像のように出力したい:
これは、データを取得するために使用される私のクエリです。
注: SQL Server 2000 を使用しているため、CTE やT-SQL の機能を使用できませんCROSS APPLY
sql - 複数の条件で XML フィールドをフィルタリングする方法
私はそのようなテーブルを持っています:
XML フィールドには、 C# の XML 表現が含まれていますDictionary<int, string>
。例:
私がしたいのは、XmlField に含まれるすべての行 (キー = 1、値 = 'Web') および (キー = 2、値 = 'Email') を含むすべての行を選択することです。
これまでのところ、1 つの一意のキーと値が一致する行のみをフィルタリングできました。
追加するAND (x.fields.value('(key/int/text())[1]', 'int') = 2 AND x.fields.value('(value/string/text())[1]', 'varchar(MAX)') = 'Email')
と、何も返されません (非常に論理的に)。
CROSS APPLY
また、単純なフィルターを使用しないで実行しようとしました。
ただし、その後は のように動作OR
し、xml に (1, Email) と (2, Web) などの 2 つのキーと値のペアが含まれる行を返します。