我熟悉 Sybase,它允许使用以下格式的查询语句:IF EXISTS () THEN ... ELSE ... END IF(或非常接近)。这是一个强大的语句,可以实现“如果存在,则更新,否则插入”的功能。
我正在为 IBM iSeries 上的 DB2 编写查询语句。我看到了 CASE 关键字,但我无法使它工作。我总是收到错误消息:“不期望关键字 CASE”。
示例:
IF EXISTS(SELECT * FROM MYTABLE WHERE KEY = xxx) THEN UPDATE MYTABLE SET VALUE = zzz WHERE KEY = xxx ELSE INSERT INTO MYTABLE(KEY,VALUE)VALUES(xxx,zzz) END IF
有没有办法在 IBM iSeries 上的 DB2 中实现这个功能?目前,我运行两个查询。首先是 select,然后我的 Java 代码决定更新/插入。我更愿意编写一个单一的查询语句,因为我的服务器位于遥远的地方(跨越太平洋)。
我正在为 IBM iSeries 上的 DB2 编写查询语句。我看到了 CASE 关键字,但我无法使它工作。我总是收到错误消息:“不期望关键字 CASE”。
示例:
IF EXISTS(SELECT * FROM MYTABLE WHERE KEY = xxx) THEN UPDATE MYTABLE SET VALUE = zzz WHERE KEY = xxx ELSE INSERT INTO MYTABLE(KEY,VALUE)VALUES(xxx,zzz) END IF
有没有办法在 IBM iSeries 上的 DB2 中实现这个功能?目前,我运行两个查询。首先是 select,然后我的 Java 代码决定更新/插入。我更愿意编写一个单一的查询语句,因为我的服务器位于遥远的地方(跨越太平洋)。