問題タブ [case-statement]

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 投票する
8 に答える
1191 参照

delphi - Delphiのキーワードのリストでキーワードをチェックする最も速い方法は何ですか?

キーワードのリストがあります。私が本当にやりたいことは、次のようなものです。

残念ながら、CASEステートメントは文字列のように使用することはできません。

ストレートのIFTHENELSE IF構文を使用できます。例:

しかし、これは比較的非効率的だと聞きました。

代わりに私がやっていたことは次のとおりです。

もちろん、これは最良のプログラミングスタイルではありませんが、私にとっては問題なく機能し、これまでのところ違いはありませんでした。

では、これをDelphiで書き直して、シンプルでわかりやすく、しかも高速にするための最良の方法は何でしょうか。

(参考までに、Unicode文字列でDelphi 2009を使用しています。)


ファローアップ:

Tobyは、IfThenElse構文を使用することをお勧めします。CASEステートメントを使用した私の例を振り返ると、それがどのように実行可能な答えであるかがわかります。残念ながら、CASEを含めると、私の本当の質問がうっかり隠されてしまいました。

私は実際にそれがどのキーワードであるかを気にしません。特定のメソッドがPOSメソッドと同じように識別できる場合、これは単なるボーナスです。私が必要としているのは、キーワードがキーワードのセットに含まれているかどうかを知ることです。

だから本当に私はより良いものがあるかどうか知りたいです:

この場合、IfThenElseに相当するものは良くないようです。

Kornelの質問に対するBarryのコメントの中で、彼はTDictionaryGenericに言及しています。私はまだ新しいジェネリックコレクションを取り上げていません。それらを掘り下げる必要があるようです。ここでの私の質問は、それらが効率のために構築されているかどうか、そしてTDictionaryを使用すると、外観と速度が上記の2つの行とどのように比較されるかということです。


後のプロファイリングで、('' + MyKeyword +'')のような文字列の連結は時間的に非常にコストがかかるため、可能な限り避ける必要があることがわかりました。他のほとんどの解決策は、これを行うよりも優れています。

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

bash - Case ステートメントは文字列に評価されます

私は関数型プログラミングのバグを見つけたので、当然のことながら、私にとって十分なものはもうありません。;)

したがって、bash では次のように記述できます。

しかし、タイプミスが怖いので、次のように書きたいと思います。

ケースは最後に実行されたコマンドの終了コードに評価されるため、2 番目の形式は無効です。これは、私が探しているものとはまったく異なります。

私が探しているものを達成するための簡単なハックはありますか?

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

sql - Case Statements versus coded if statements

What is more efficient - handling with case statements in sql or handling the same data using if statements in code. I'm asking because my colleague has a huge query that has many case statements. I advised her to take stress off of the DB by coding the case statements. I've found that it is more efficient...but why?

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

ruby - Ruby - case ステートメントの暗黙のオブジェクト

Ruby で、case ステートメントの暗黙的なオブジェクトを取得する方法はありますか?

「some_object」は、ケースによって評価されたステートメントの戻り値になります

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

mysql - CASE ステートメントを使用した MySQL クエリのヘルプ

「本社」または「親」の場所に基づいて、多数の顧客をグループ化しようとしています。

これは、システムを開発していたときに予見できなかった欠陥を除いては正常に機能します...「親」(スタンドアロンビジネス)を持たない顧客の場合、parent_id をデフォルトで 0 に設定しました。したがって、私のデータは次のようになります。これ:

私がやりたいことは、結果をグループ化して、CustName#1 に 1 つの行と CustName#2 に 1 つの行を持つようにすることですが、私の問題は、parent_id=0 の親レコードがなく、これらの行が内部結合。

ケースステートメントを使用してみましたが、どちらも機能していません (親はまだ無視されています)

どんな助けでも大歓迎です。これが私のクエリです(私のケースは基本的に、parent_id = 0の場合を除いて、parent_idに基づいてcustomerテーブルからbusiness_nameを取得しようとしています。次に、job_summaryテーブルにリストされているcustomer_nameを使用します):

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

sql - Insertステートメントのvaluesセクション内でCaseステートメントを使用する

私の無知と貧弱なSQLプログラミングスキルを許してください。しかし、私は通常、基本的なSQL開発者です。

別のテーブルに別のデータを挿入するには、あるテーブルへのデータの挿入からトリガーを作成する必要があります。

このトリガー内で、元のテーブルから新しく挿入されたデータ内の値に基づいて、特定のデータを新しいテーブルに挿入する必要があります。私はこれについて完全に混乱しています。私は創造的で、Valuesセクション内でcaseステートメントを使用すると思いましたが、機能していません。

誰かがこれについて私を助けてくれますか?(以下は私が今持っているトリガーのコードです)

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

case-statement - 計算列を含む構文caseステートメント

MS-SQL 2005でのこのクエリの正しい構文は何ですか?

以下のエラーメッセージが表示されますが、解読できません。これには、オペランドで使用する変数の型または構文が含まれていると思います。

誰かが助けてくれることを願っています。

ご挨拶、

ハイン

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

sql - SQLServer-2つの可能なSELECTステートメントを切り替える方法

mssqlストアドプロシージャのパラメータを使用して、小さな結果と詳細な結果を切り替えたいと思います(保守性、パフォーマンス、およびネットワーク負荷の理由から)。

パラメータが1に設定されている場合、すべての列を取得します。それ以外の場合、最も重要なのは1つまたは2つだけです。非常に限られた方法で、次のように機能します。

しかし、WHEN句を組み合わせて使用​​したいと思います。以下は私が試したものですが、これは機能しません。

そのような何かを達成する方法はありますか?

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

asp.net - 「すべて選択」オプションのあるドロップダウン リスト

Region、District、City の 3 つのドロップダウン ボックスがあります。ユーザーが地域内のすべての都市を取得できるように、地区ドロップダウンに「すべて選択」オプションを付けたいと思います。それ以外の場合は、選択した地区に基づいて都市を表示するだけです。私のクエリは次のようになります。

私は vb.net/sql を使用していますが、検索でも複雑なケースのシナリオは見つかりませんでした。任意の提案をいただければ幸いです。

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

php - SQL: CASE ステートメントを使用して 1000 行を一度に更新する

わかりました、これに a を使用したいのCASE STATEMENTですが、これで迷っています。基本的に、大量の行を更新する必要がありますが、「位置」列だけです。id_layout および id_layout_position ごとUPDATEに削除された位置の値よりも大きいすべての位置の値が必要です。position - 1

OK、これはテーブルがどのように見えるかの写真です: 代替テキスト http://acs.graphicsmayhem.com/images/dp_positions_table.png

ここで、丸で囲まれた行を削除するとします。これにより、位置 = 2 が削除され、0、1、3、5、6、7、および 4 が得られます。2 より大きい位置の値を再配置する必要があります。このように: 0、1、2、4、5、6、および 3。

OK、これが ROW の DELETING 内でこれまでに取得したものです。したがって、これをどのように探すかを次に示します (注: $module_info['clones'] = 削除するクローンの配列。上の表には何もないため、すべての id_clone 値は 0 であり、$module_info['id'] は削除する id_module 値です):

NEW QUESTION: THERE's Just gotta be some sort of way to use a CASE STATEMENT in this UPDATE now. For Example, I now need to update all positions to position - 1, on a per id_layout, and per id_layout_position basis. BUT only where the position is greater than the current position for that id_layout and id_layout_position value.

Is there anyway to do this without using a FOREACH LOOP?