-2

SQLがこれが無効なSQLステートメントであることを伝えていたwhere句にこの問題があります。行名は日時です。if ステートメントに何か問題があり、それを理解できません。皆さんが私を助けてくれることを願っています...ありがとう

注:コードをより明確なバージョンに変更することができました(2つのテーブルに選択クエリがあります)

どこ

                last_update_date between

                    IF  tbl1.last_update_date is not null

                    THEN

                        max(tbl1.last_update_date)

                    ELSE

                        min(tbl2.last_update_date)

                    END IF;

                and 
                    sysdate
4

1 に答える 1

0

Ifselectステートメントの構文の一部ではありません。それはより高いレベルの言語の一部です。したがって、whereステートメントに含めることはできません。次のようなものが必要です。

WHERE rowname >= coalesce((select max(rowname) from tbl1), (select min(rowname) from tbl2), rowname)) and
                 sysdate

また、sysdateOracle の定義です。MySQL は通常、 を使用しますnow()。どちらも ANSI 標準をサポートしている可能性がありCURRENT_TIMESTAMPます。

于 2013-06-21T02:27:49.323 に答える