1

Informix データベースを使用しており、表示される値を 'N' から 'Y' に変更したい... 次の SQL を実行していますが、構文エラーが発生しているようです:

UPDATE tablename 
SET displayed ='Y' 
WHERE flag= 'S' OR flag ='DEP' OR flag = 'WTD';

or を使用しています。これは、3 つのケースすべてで表示を Y にしたいためです。正しい構文と、informix でテーブルを更新または変更する方法についてのヘルプがあれば役立ちます。ありがとう

4

2 に答える 2

1

私の理解が正しければ、列に 3 つの値がすべて含まれている場合、列を更新する必要があります:
'S', 'DEP', 'WTD'.

サブクエリを作成して、3 つの値すべてを含む行を取得できます。

UPDATE  tableName 
SET     displayed = 'Y'
FROM    tableName, 
        (
            SELECT  primary
            FROM    tableName
            WHERE   flag IN ('S', 'DEP', 'WTD')
            GROUP   BY primary
            HAVING  COUNT(flag) = 3
        ) b 
WHERE   tableName.primary = b.primary

Primary列をグループ内の共通の行の値に変更するだけです。

于 2013-01-22T01:21:22.843 に答える