我有两个表2017和2018.两个表都有相同的列,但值不同。我希望获得每列的不同值,并且我希望确保2018年的所有唯一列出现在2017年。每个表中有超过100列。我已经使用游标尝试了以下查询。结果将存储在名为' RESULT_MINUS'
的其他表格中height = total_hight / ranks;
std::vector<float> data(width * (height + 2));
float* image = &data[width];
float* ghost_north = &data[0]
float* ghost_south = &data[width * (height + 1)]
float* inner_north = image;
float* inner_south = &image[width * (height - 1)]
MPI_Scatter(root_image, width * height, MPI_FLOAT,
image, width * height, MPI_FLOAT, ...);
...
iterations {
MPI_SendRecv(inner_north, width, MPI_FLOAT, north, tag,
ghost_north, width, MPI_FLOAT, north, tag, ...)
MPI_SendRecv(inner_south, width, MPI_FLOAT, south, tag,
ghost_south, width, MPI_FLOAT, south, tag, ...)
... compute ...
}
MPI_Gather(image, width * height, MPI_FLOAT,
root_image, width * height, MPI_FLOAT, ...);
提前致谢..
答案 0 :(得分:0)
为什么要在内部循环中使用游标来插入差异?只是做:
INSERT INTO RESULT_MINUS ( . . . ) -- always include the columns
SELECT 'B001', 'COMPARE', '2018', 'COL', COL, 'NOT PRESENT IN 2017'
FROM (SELECT DISTINCT COL
FROM COMPARE_2018_P1
MINUS
SELECT DISTINCT COL
FROM COMPARE_2017_P1
) c;
至于循环表中的列,这是合理使用游标。
您的代码不起作用,因为需要在内部循环中定义DIFFERENCE
游标。但根本不需要它。
答案 1 :(得分:0)
如果要使用OptionsControl
逻辑,则必须动态定义CURSOR
游标(替换列名)。
变化
DIFFERNECE
的
OPEN DIFFERENCE;
并删除光标的定义。
但当然,由于更好的表现,使用来自其他答案的动态插入的方法是优先的。