我们的工具中有一个用于评估值的表,其中每个值都有valueid。不要问我是谁想出了这个所谓的设计,但现在我需要为每次评估添加多个valueid。
所以,它看起来像这样:
AssessmentId 1, ValueId 1, Value
AssessmentId 1, ValueId 2, Value
AssessmentId 1, ValueId 3, Value
AssessmentId 2, ValueId 1, Value
AssessmentId 2, ValueId 2, Value
AssessmentId 2, ValueId 3, Value
我现在可能需要一个子查询来返回所有不同的评估,并为每个我添加行的
AssessmentId 1, ValueId 7, empty
AssessmentId 1, ValueId 8, empty
AssessmentId 1, ValueId 9, empty
AssessmentId 2, ValueId 7, empty
AssessmentId 2, ValueId 8, empty
AssessmentId 2, ValueId 9, empty
...
老实说,我不知道如何实现这一目标。也许是一个小组的子选择,但是我如何将选定的评估结果放入新的插入内容?
编辑: 实际上,我们每次评估都有709个值,现在我们还需要24个以上的额外数据
foreach distinct assessmentid in table
{
insert row (assessmentid, 710, null);
insert row (assessmentid, 711, null);
...
insert row (assessmentid, 733, null);
}
类似这样的事情
答案 0 :(得分:3)
INSERT
INTO i_should_really_name_the_tables_i_ask_about_on_stackoverflow_com (assessmentid, valueid)
SELECT assessmentId, valueMax + lvl
FROM (
SELECT assessmentId, MAX(valueId) AS valueMax
FROM i_should_really_name_the_tables_i_ask_about_on_stackoverflow_com t
GROUP BY
assessmentId
) a
CROSS JOIN
(
SELECT level AS lvl
FROM dual
CONNECT BY
level <= 24
) l