問題タブ [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.

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

mysql - MySQLを使用したselectクエリでCASE、WHEN、THEN、ENDを使用する

私は野球関連のウェブサイトに取り組んでいます。私は2つの野球チームのバッティングラインナップのテーブルを持っています:

打順は1から20までの整数です。これは次のロジックに対応します。

  1. 打率1-9—アウェイチームラインナップ
  2. バッティングオーダー10—アウェイチームピッチャー
  3. バッティングオーダー11-19—ホームチームラインナップ
  4. バッティングオーダー20—ホームチームピッチャー

アクティブフィールドは、マウンドのピッチャーとプレートのバッターを表すtinyint0または1です。

既知の事実:1つのチームから1人のアクティブなピッチャーと、反対側のチームから1人のアクティブなバッターが常に存在します。

battingOrderの次の打者に対応するホームチームプレーヤーの行を返すクエリを作成する必要があります。(アクティブなバッターのbattingOrderの後に発生するもの)

例:

  1. バッティングオーダー13のプレーヤーがアクティブな場合、クエリはバッティングオーダー14のプレーヤーを返す必要があります。
  2. バッティングオーダー19のプレーヤーがアクティブな場合、クエリはバッティングオーダー11のプレーヤーを返す必要があります(ラインナップはチームの最初のプレーヤーにループバックします)。

これまでCASEクエリを使用したことはありませんが、次のことを思いつきました。

うまくいくようですが、どのようなエッジケースや落とし穴に踏み込んだことがありますか?これは効率的ですか?ネストされたクエリを使用しない問題の解決策に特に興味があります。

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

sql - SQL Server CASE .. WHEN..INステートメント

SQL Server 2005で、このselectステートメントをクエリしようとしています

以下のエラーを返します

メッセージ156、レベル15、状態1、行4キーワード「IN」の近くの構文が正しくありません。

私のコードの何が悪いのかについてアドバイスをください。

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

sql - 特定の列の値がゼロの場合、上の行の値を使用するにはどうすればよいですか?

日付別の項目の表があります(各行は新しい日付です)。別の列Dから値を引き出していますが、0を置き換えるために値が必要です。次のロジックが必要です。その日付のD=0の場合、前の日付の列Dの値を使用します。

実際、正直なところ、Dが0の場合は、Dが0ではなかった最新の日付の値を使用しますが、最初の値を使用すると、ほとんどの場合、そこに到達します。

このロジックを構築する方法はありますか?多分CTE?

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

PS私はSSMS2008を使用しています。

編集:私は最初はあまり明確ではありませんでした。変更したい値は日付ではありません。日付に基づいて、Dの値をDからの最新のゼロ以外の値に変更したい。

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

sql - SQL クエリを置換

このクエリを置き換えたい

@tmpUserまたは他の一時テーブル を使用せずに単一の SQL SELECT ステートメントに

0 投票する
3 に答える
72 参照

sql - 両方のクエリは同じですか?

両方のクエリは同じですか? どちらも同じ結果を返しますか?

1)

2)

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

mysql - MySql 条件付きグループ化

私のテーブルを検討してください (これは単純化されたバージョンであり、私のプロジェクトでは 600,000 以上のレコードがありました):

私がする必要があるのはTransactionTypeId = 1、そのテーブルから最新のデータを取得する必要があるときです。それ以外の場合は、TransactionTypeId <> 1すべてを取得する必要があります。

この例では、次のクエリがあります。

そして、私の望ましい結果は次のようになります。

しかし、私の問題は、場合でもTransactionTypeId <> 1、クエリがまだそれらをグループ化していることです。

私のクエリは次を返します:

UNIONここで、列のクエリを分離するために使用できることはわかっていTransactionTypeIdますが、できません。結果を取得するのに 5 分以上かかりました。これを解決する方法はありますか(何もない場合は、使用するしかありません)。UNION

ありがとう :)

更新 #1

を使用している場合のクエリは次のとおりですUNION

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

sql - SQL:節の場合のネストされた条件

私にはCase-Whenこのような条項があります。

後の条件を使いたいTHEN

例えば;

でネストされた条件を使用するにはどうすればよいCase-Whenですか?

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

oracle - Oracle初心者エラー:ORA-00904「casewhen」を使用すると識別子が無効になります

クエリでエラーが発生します。このクエリはOKで、データを返します(selectsとrownumsはページネーション用です):

今、私は「case when」を含めて、特定の状況でのみURLを取得しようとしているので、caseブロックを含めて次の変更を行います。

Oracleは次のエラーを起動します。

これは、inscription_dateを要求し、同じクエリレベルで使用しているためだと思いますが、これに対処する方法がわかりません。

また、自分が作ろうとしているものをどうやって作ることができますか?つまり、特定の条件下でのみURLを取得します。

誰でも助けることができますか?

前もって感謝します。

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

tsql - TSQLと複数の場合の場合

私にはいくつかの条件があり、それらの結果は同じであるはずです。私はネットを検索し、次のようなものを見つけました:

それは素晴らしいことですが、私が必要としているものではありません。私にとっては、R、M、T、Sのようなものはすべて同じ結果になり、たとえばA、B、C、Dにはありません。どうすればいいですか?ORに接続できないか、少なくとも接続できませんでした:)。多分このような何か?

0 投票する
3 に答える
545 参照

sql - INSERT 内の CASE WHEN の SQL ステートメントについて混乱している

次の SQL ステートメントがあります (SQL Server を対象としています)。

エラーが表示されます:「列名 'maxV' が無効です」

なんで?