0

DB2 データベースの CLOB フィールドから最後の 10 文字を削除しようとしています。私はそれを使用して行うことができます:

UPDATE  report
SET     comment = LEFT(comment, (LENGTH(comment) - 10))

ただし、レポートが現在のレポート期間内にあるかどうかに基づいて、切り捨てを行のサブセットに制限したいと考えています。私はこれを試しました...

UPDATE  report
SET     comment =
        (   SELECT  LEFT(comment, (LENGTH(comment) - 10))
            FROM    report

                    INNER JOIN report_period
                    ON report.report_period_id = report_period.report_period_id

            WHERE   report_period.name = '2013 Interim Report'  )

...しかし、私は得る

The result of a scalar fullselect, SELECT INTO statement, or
VALUES INTO statement is more than one row

私は何を間違っていますか?

4

1 に答える 1

0

気にしないでください... 質問をすることで、頭の中がすっきりしました。結合をWHERE句に移動するだけでした....

UPDATE  report
SET     comment = LEFT(comment, (LENGTH(comment) - 10))
WHERE   report_id IN
        (   SELECT  report_id 
            FROM    report

                    INNER JOIN report_period
                    ON report.report_period_id = report_period.report_period_id

            WHERE   report_period.name = '2013 Interim Report'  )
于 2013-04-05T00:37:24.013 に答える