問題タブ [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-server - C#からCASEを切り替えてストアドプロシージャを実行する際の例外(T-SQL)
テーブルにNVARCHAR(max)列があり、この列とCASEスイッチングを使用してテーブル内の他の列を更新するストアドプロシージャがあります。
SQL Management Studioからこの手順を実行すると、すべて問題ありません。
同じストアドプロシージャを使用してC#コードからTableNameを更新することもできますが、C#からこのBigNvarcharValueを更新する場合、「文字列またはバイナリデータが切り捨てられる」というSQLExceptionで失敗します。これで、このストアドプロシージャのCASEと関係があることがわかりました。これは、より単純なストアドプロシージャに分割すると、すべてが正常に機能するためです。
この例外の原因となるNVARCHAR列に大きな値を挿入しようとするこの問題について説明しているフォーラムの投稿をたくさん読みましたが、当てはまらないようです。
私はT-SQLにかなり慣れていないので、私が知らないCASEの制限はありますか?
PS BigNvarcharValueはNVARCHAR(MAX)であり、TableNameはNVARCHAR(50)です。
hibernate - Hibernate / HQL / JPQL:CASE WHEN ... THEN NULL ELSE ... END(ClassCastException)の何が問題になっていますか?
SELECTに次のJPQL/HQLスニペットがあります
最高と最低のスコアを見つけるために。(scf)またはスコアに対するスコアが20または0の場合、それは特別な結果を伴うゲームであり、MINおよびMAXでは無視されます。
Hibernateは例外をスローします:
どうしたの?それは私のコードですか?休止状態のバグ?
問題は、HibernateがTHEN内でNULLを処理できないことであるようです。集約関数なしで「CASEWHEN scf.finalScore IN(0、20)THEN NULL ELSE scf.finalScore ENDASplayedscore」は引き続き同じ例外をスローします。それで、これはHibernateのバグですか?
sql - case-when-value-before something 式の問題
4 シンボルの長さの製品コードがある場合があります。次に、場合によっては、製品の最初の記号が基本的に同じであり、たとえば、ある製品コードが 7456 で別の製品コードが 8456 であり、これらの製品が同じ機能を持っている場合があります。したがって、違いは最初のシンボルだけで、右から 3 つのシンボルは同じままです。
私の問題は、2 つのデータ テーブルを互いに比較したいということです。最初のテーブルではコード 7456 を使用し、2 番目のテーブルではコード 8456 を使用できます。コードが 7 または 8 で始まる場合、最後の 3 つの記号を使用する SQL。
可能な解決策は、7000-8999 の間の値が 3 を使用する場合のようなケースだと思いますが、このコードを機能させることはできませんか? 誰かが私に解決策を持っていますか??? ありがとう!
hibernate - JPQL: CASE のブール式は、TRUE/FALSE との明示的な比較が必要な場合?
私は次のことを試しました:
最後の行は重要です。によると
JPQL/HQLおよびJPA/Hibernate:選択コンストラクタ式のブール式が機能しない(予期しないASTノード:AND、NPE、HqlSqlWalker.setAlias)?
CASE WHEN が必要です。ただし、これを実行すると、Hibernate は次のエラーで失敗します
JPA/Hibernate の文法では明らかにサポートされていませんが、Java および DB プログラマーとして、if ( hasHitHard ) ... および/または SELECT was_withdrawn ... のような式が機能することを期待しています。
なぜこのように作成されたのか、または期待どおりにサポートされないのはなぜですか?
sql-server - WHEN 句を使用した SQL Server のグループ化
group by 句のエラー :: MS sql.here でレコードを一意にしたいのですが、2 ~ 3 個のテーブルの結合と when 句を使用しています。group by 句を使用して区別するのはより難しく、次のようなエラーが発生します。
sql - CASE / WHENを使用してSQLの範囲値を分類するにはどうすればよいですか?不可能な場合、代替案はありますか?
基本的に、選択した列を次のように異なる範囲に分類できるようにしたいです。範囲が0より大きい場合は、列の値を返します。範囲が0未満の場合、「期限切れ」を返します。コードは次のとおりです。
次のステートメントを変更したいと思います。
次のように:
または同様の何か、私がそれを行うことを可能にするキーワード/機能はありますか?
mysql - mysqlストアドプロシージャでcase-whenステートメントを使用する方法は?
request_timeパラメーターを使用してsession_idを自動的に設定したいので、caseステートメントを含むmysqlストアドプロシージャを選択しました。
ただし、//の後のEnterで1064エラーが発生します。mysqlのドキュメントを確認しましたが、大文字と小文字の構文は正しいと思います。
助けてください。
sql - Oracleでif条件でselectを使用するには?
私の要件は、複雑なクエリから数値を取得し、num = desiredNum かどうかを確認することです。
desiredNum と等しい場合は、別の一連の選択ステートメントを実行する必要があります。
関数を書くのではなく、クエリでこれを達成する方法はありますか?
例えば:
これは可能ですか??
sql - ORはSQLServerのCASEステートメントではサポートされていません
ステートメントの句のOR
演算子はサポートされていません。これどうやってするの?WHEN
CASE
performance - Sybaseエキスパートヘルプ:groupbyaggregateのパフォーマンスの問題
次のテーブルとSQLがあります。
T1:ID、col2、col3-PK(ID)-23mil行
T2:ID、col2、col3-PK(ID)-23mil行
T3:ID、名前、値-PK(ID、name)-66mil行
1)以下のSQLは、10k行の結果セットを非常に高速に返します。問題はありません。
2)以下のSQLはFOREVERを取りました。
これら2つのクエリ間のショープランの唯一の違いは、クエリ2)の以下です。私はそれを100%理解していません、それは一時テーブルにトップ10000のない全体の結果セットを選択し、それでグループ化を行うのですか?だから遅いの?
私の質問は
1)クエリがなぜ遅いのか2)とても遅い
2)クエリロジックを同じに保ちながら修正するにはどうすればよいですか。できれば、以前と同じように1つのSQLを選択するように制限してください。
ありがとうございました