-1

我已将 VALUES 子句移到语句中的不同位置,但没有运气。我是新手,感谢您提供任何帮助。谢谢你。

INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
VALUES ('NOT PUBLIC', 0)
SELECT
    KEYITEM296.KEYVALUECHAR,
    KEYITEM296.KEYSETNUM
FROM
    ITEMDATA
LEFT OUTER JOIN
    KEYITEM296
ON
    (
       ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
WHERE
    ITEMDATA.ITEMTYPENUM = 862 ;
4

2 回答 2

1

我是 DB2 的粉丝,但您不能在 INSERT 中混合使用 VALUES 和 SELECT。

正确的 SQL 将用于 INSERTing 数据:

INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
SELECT
    KEYITEM296.KEYVALUECHAR,
    KEYITEM296.KEYSETNUM
FROM
    ITEMDATA
LEFT OUTER JOIN
    KEYITEM296
ON
    (
       ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
WHERE
    ITEMDATA.ITEMTYPENUM = 862 

或者

INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
VALUES ('NOT PUBLIC', 0)

或者,如果您想做 INSERT 然后选择:

INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
VALUES ('NOT PUBLIC', 0);
SELECT
    KEYITEM296.KEYVALUECHAR,
    KEYITEM296.KEYSETNUM
FROM
    ITEMDATA
LEFT OUTER JOIN
    KEYITEM296
ON
    (
       ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
WHERE
    ITEMDATA.ITEMTYPENUM = 862 ;
于 2012-08-29T20:49:29.727 回答
0
INSERT INTO KEYITEM296 (KEYVALUECHAR, KEYSETNUM, ITEMNUM)
VALUES ('NOT PUBLIC', 0, 862 );

  --You must complete your insert with ITEMNUM
  -- you must add ; separator
  -- you must delete '.' of your query

SELECT
    KEYITEM296.KEYVALUECHAR,
    KEYITEM296.KEYSETNUM
FROM
    ITEMDATA
LEFT OUTER JOIN
    KEYITEM296
ON
    (
       ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
WHERE
    ITEMDATA.ITEMTYPENUM = 862 ;
于 2012-08-29T20:47:53.063 回答