問題タブ [case-when]
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: 複数の行 (tbl 2) から単一の行 (tbl 1) を生成します。クロスDB
tblGlobalIDMapping
すべてのエントリに GUID を割り当て、他の 3 つのプライマリ ID をアプリ全体に保存して、単一の ID リポジトリを提供するという名前のプライマリ DB に単一のテーブルを作成しました。
新しいテーブルは次の構造にあります -->
必要な情報は、次の部分構造を持つ別の DB (同じサーバー) のテーブルにあります -->
個人 (ID# 13579) は、アプリケーションごとに 2 番目のテーブル 1 に表示されます。ApplicationID 列には、DRIMaster の場合は 1、DRIClient の場合は 6 の数値が格納され、PersonApplicationID の ID# の目的を示します。
そのテーブルから新しいテーブルに一括コピー/挿入を行う必要がありますが、新しいテーブルに 3 つのメイン ID を記録する 1 行だけが必要です。
これは私がこれまでに持っているものですが、これは PersonID ごとに行を返します。
これは以下を返します -->
sql - ORDER BY 少数の列の CASE
case-then ブロックを使用して、SQL 2008 クエリを並べ替える方法を選択する必要があり[status] ASC, [date] DESC
ます[date] DESC
。
1つの列の使用方法しか知りません:
2番目のCASEで両方の列を使用するには?
sql-server - CASE WHEN を使用しない SQL Server CASE WHEN
CASE WHEN 構造を使用する Transact SQL ステートメントを書き直して、CASE WHEN を使用せずに同じことを行う方法はありますか?
組み込みのクエリ デザイナーと独自の疑似 SQL を備えた製品を使用しています。SQL Server と Oracle で使用できるものには制限があります。したがって、基になるデータベースが Oracle の場合、DECODE (サポートされている) を使用するこの列があります。ただし、SQL Server で動作させる必要があり、CASE WHEN はサポートされていません。
変換しようとしているステートメントは次のようなものです
使用する T-SQL オプションのセットは限られていますが、CASE WHEN はオプションではありません。私は IsNull と Coalesce を持っていますが、これが役立つかどうかはわかりません。
日付の計算を気にしないでください。それらは解決されています。
ここでCASE WHENの質問を検索しましたが、役に立ちませんでした。
ありがとう!
アップデート:
これは開発者向けのリソースであり、これは開発製品であると想定されるため、制限の理由について詳しく説明する必要があったことを認識しています。そうではない。
組み込みのクエリ デザイナーと独自の疑似 SQL を備えたエンタープライズ ソフトウェア製品を使用しています。SQL Server と Oracle で使用できるものには制限があります。基本的に、組み込みのクエリ エンジンの解析を妨げないものはすべてゲームです。これは、承認されたすべての関数と式、およびすべてのデータ抽象化 (データベース内の物理テーブルに対応する内部オブジェクトおよび製品で作成されたその他のクエリ)、および解析を明示的に中断しない Oracle SQL または Transact SQL からのすべてを意味します。 .
CASE WHEN が機能しない理由は、クエリ エンジンによる疑似 SQL の解析が中断されるためです。
最終的には、次のことを試してみたいと思います。
- 製品のクエリ デザイナーのみを使用して、解析 OR を渡す SQL
- これを行うには、SQL Server データベースとクエリ デザイナーからいくつかの追加リソースを使用します。
私が得たいくつかの良い答えに基づいて、これまでのところ私にとってうまくいったアプローチは次のとおりです。
Jason DeFontes は、データベース ビューを使用して CASE WHEN ルールを実行できると提案しましたが、これは上記の #2 に該当します。ビューは動的であるため、メンテナンスを行う必要がないため、私にとってはうまくいきます(ジェイソンのアプローチに近いと思われるrichartallentの真理値表アプローチとは対照的です)。関数を作成するという Pascal の提案は同じ方向に進みますが、おそらく解析を中断します。
そこで、CASE WHEN を使用してすべての変換を行うデータベース ビューを作成し、それをクエリの SQL に追加して、既存の SQL と結合したところ、問題なく動作しました。同じデータ セットを 2 回 (ビュー用とクエリ用に 1 つずつ) 取得する必要があるため、おそらくデータベース エンジンにオーバーヘッドが追加されていることを認識していますが、これはほとんど問題にならないケースの 1 つです。
この「ビューを使用して難読化する」設計が機能することを考えると、より効率的なアプローチは何でしょうか。
- CASE WHEN での選択の使用。
- CTE の使用 (繰り返しますが、richardtallent);
- Union All (HLGEM) の使用;
- サブクエリの使用 (MisterZimbu);
おそらく上記の#1に該当する可能性があるため、Aramis wylerの提案を引き続き確認します。
今のところ、ジェイソンの答えは受け入れられました。ビューで CASE WHEN を使用したことを考えると、質問のタイトルが不適切に選択された可能性があります。私は、プロセスに役立つ何かを提案したすべての人を元気づけました. それがあなたの評判に影響を与えるかどうかはわかりませんが、それは良いことだと思いました.
繰り返しになりますが、皆さんのご協力に感謝いたします。また、質問の不適切な部分を編集していただけるようお願いいたします (これは私の最初の質問であり、英語は私の第二言語です)。
sql-server - SQLServerでCASEWHEN内の複数の列を選択するにはどうすればよいですか?
このサイトを広範囲に検索しましたが、解決策が見つかりません。
これが私のクエリの例です:
明らかに私は多くのクエリを省略しています、私はそれが可能かどうかを見たかっただけです。
私はおそらく「CASE」を2回だけ実行できることを知っていますが、私が尋ねると思いました...
sql - 注文時の Oracle SQL ケース
特定の値が最初に表示されるように、データを列ごとに並べ替える必要があります。したがって、このようなクエリの場合...
... に基づいていますcase when
が、気になるのは、現在持っている 3 つのネストされた選択です。
性能的には問題ないと思いますが、なんかスパゲッティみたいですね…節にcase-when
入れる方法はありますか?where
sql - CASEWHENを使用してpostgresqlでピボットテーブルを作成する正しい方法
postgresqlでピボットテーブルタイプのビューを作成しようとしていますが、もうすぐです。基本的なクエリは次のとおりです。
そしてデータ:
私が取得しようとしているのは次のとおりです。
私はCASEWHENでこれを実行しようとしているので、次のことを実行できます。
これは私に出力を与えます:
ある時点でaccでグループ化する必要があることがわかったので、試してみます
しかし、私は恐ろしくなります
私が見つけたこれまでのすべての例では、CASEステートメントの周りにSUM()のようなものを使用しているので、それが集計関数だと思います。FIRST()を使用してみました:
しかし、エラーが発生します:
誰かが何かヒントを提供できますか?
mysql - Mysql CASE --WHEN --THEN-間違ったデータ型を返す(blob)
Webストアでカスタマイズ可能な製品属性を作成しています-各属性は異なるタイプのデータを持つことができ、各データタイプは対応するmysqlデータタイプを使用して別々の列に格納されます。
次のようなクエリがあります:
さて、問題はいつattribute_types
。type
?some-type?に等しい テーブルに格納されている値を返すようにしproduct_attribute_values
ます。現在、私は毎回BLObを取得しています。
型キャストを使用する必要がありますか、それとも私が知らない舞台裏の魔法があるのでしょうか、それとももっと良い代替手段があるのでしょうか?
編集:
TEXT(textarea)の条件を追加するまで、すべてOKAY(フロートの価格をチェックしています)のようです。
sql - 簡単なSQLSelectCase Whenステートメントが誤った構文エラーをスローし、それが見つかりません!
助けてくれる皆さん、ありがとう!
2つのcaseselectステートメントがあり、このステートメントでエラーが発生します。
私が得ているエラーは次のとおりです。「ANDREWSTABLE」の列14に列が指定されていません。
完全なステートメントのどこに存在するかを以下で参照してください。
どこで私は間違えましたか?構文が間違っていると表示され、見つめ、見つめ、グーグルでググったのですが、これを修正する方法を思い付くことができません。シンプルなものに違いない。
よろしくお願いします!
sql - SQL列/行フォーマットの質問
私のクエリは、不動産の種類を保持できる列を返します。値は、コンドミニアム、デュプレックス、ハウスなどです。コンドミニアムを表示する代わりに、列にCが必要です。私の計画は、すべてのケースをカバーするために巨大なケース/いつ構造を使用することでした.もっと簡単な方法はありますか? ちなみに、最初の文字を大文字で表示するだけでは機能しません。これは、そのルールを適用してショートコードを作成できない場合があるためです。たとえばデュプレックスはDE ...
ありがとう :-)
tsql - T-SQL の Case/When を使用するにはどうすればよいですか?
case/when を頻繁に使用する巨大なクエリがあります。ここにこの SQL がありますが、これは機能しません。
問題の原因はxyz.somethingelseagain = 2
、その式をバインドできなかったということです。xyz は、クエリでさらに下に結合されるテーブルのエイリアスです。ここで何が問題なのですか?2 つの case/whens の 1 つを削除するとそれが修正されますが、両方が必要であり、おそらくさらに多くのケースが必要です。