2

IBM InformixDynamicServerバージョン10.00.FC9の使用

CASE1つのブロックで複数のフィールド値を設定しようとしています。これは可能ですか?フィールドセットごとに同じ条件を再評価する必要がありますか?

私はこれらの線に沿って何かを考えていました:

SELECT CASE WHEN p.id = 9238 THEN ('string',3) END (varchar_field, int_field);

THENセクションが次の構文と同様のフィールドの「配列」を定義する場所

INSERT INTO table (field1,field2) values (value1,value2)

また、ステートメントのCASEブロックで実行できますか?UPDATE

UPDATE TABLE SET (field1,field2) = CASE WHEN p.id=9238 THEN (value1,value2) END;

4

3 に答える 3

2

通常は、使用しているInformixのバージョンを尋ねますが、今回はそれほど重要ではないでしょう。簡単な答えは「いいえ」です。

より複雑な答えは、行型コンストラクターの使用について議論するかもしれませんが、それはおそらくあなたが出力に望むものではありません。そして、前述のことを考えると、UPDATEは機能しません(機能する場合は、追加のレベルの括弧が必要になります)。

于 2010-10-19T18:46:22.293 に答える
2

いいえ、CASEステートメントは式に解決され(IBM Informix SQLガイド:構文CASE式を参照)、式が許可されている場所で使用できます。式は単一の値です。

http://en.wikipedia.org/wiki/Expression_%28programming%29から

プログラミング言語のは、明示的な値、定数、変数、演算子、および関数の組み合わせであり、特定のプログラミング言語の優先順位と関連付けの特定のルールに従って解釈されます。ステートフル環境)別の値。

于 2010-10-19T18:53:43.717 に答える
0

ここにある簡単な方法を見つけました: 行のデータに基づいてリストビューの行の色を変更する方法

解決策は、私のsqlステートメントにcaseステートメントを追加することでした。私の人生をずっと楽にしてください。

于 2017-04-19T19:09:11.257 に答える