Hey Geeks我是DB2的新手我希望通过从一个表中获取最大值来生成代理,并且我正在这样做
SELECT *
FROM ( SELECT EMP_NAME ,
EMP_ID ,
( ROW_NUMBER() OVER ( ) ) g
FROM STG.EMPLOYEE AS A
LEFT JOIN PRD.INDIVIDUAL AS B ON A.EMP_ID = B.SRC_KEY
WHERE B.SRC_KEY IS NULL
) V
CROSS JOIN ( SELECT ( COALESCE(MAX(INDVL_ID), 0) + 1 ) mm
FROM PRD.INDIVIDUAL
) B;
上述语句用于插入语句。 在上面的代码中,我希望从最后一行获得最大值。
(select EMP_NAME,EMP_ID,max(INDVL_ID)+(ROW_NUMBER() over())g) from
STG.EMPLOYEE)
愿你们得到它并提前感谢
示例数据在这里 第一个表数据
STG.EMPLOYEE
EMP_ID|EMP_NAME|
3| def|
4| ghi|
我必须获得最大值的第二个表数据
PRD.INDIVIDUAL
INDVL_ID|INDVL_NAME|SRC_KEY|
1| abc| 1|
输出表
INDVL_ID|INDVL_NAME|SRC_KEY|
2| def| 3|
3| ghi| 4|
答案 0 :(得分:1)
以下是根据当前MAX值分配代理键值的示例
INSERT INTO PRD.INDIVIDUAL
SELECT ROW_NUMBER() OVER()
+ (SELECT COALESCE(MAX(INDVL_ID),0) FROM PRD.INDIVIDUAL) AS INDVL_ID
, INDVL_NAME
, SRC_KEY
FROM
STG.EMPLOYEE