Я пытаюсь динамически генерировать сценарии SQL INSERT с помощью формул Excel.
Мой лист Excel выглядит так, как показано ниже.
Ниже моя формула
= "INSERT INTO MYTABLE (ROLE_ID,GROUP,SUBGROUP) values('"&D8&"','"&$E$8&"','"&$F$8&"')"
Теперь я хочу, чтобы ожидаемый результат был сгенерирован, как показано ниже;
По сути, для столбца G я хочу, чтобы сгенерированный скрипт использовал данные из столбцов D, E и F. Однако информация в столбце D будет меняться в соответствии с текущей строкой, столбцы E и F будут повторяться, пока мы не получим пустую строку. (или как мы можем использовать значение «0» в столбце D, чтобы определить, что теперь следует использовать новые значения для ГРУППЫ и ПОДГРУППЫ)
="INSERT INTO SOME_TABLE (MYROLE) значения('"&E7&"');"
INSERT INTO SOME_TABLE (MYROLE) значения (ноль); INSERT INTO SOME_TABLE (MYROLE) значения («Моя роль»);
=IF(ISBLANK(E7), "INSERT INTO SOME_TABLE (MYROLE) значения(null);", "INSERT INTO SOME_TABLE (MYROLE) значения('"&E7&"');")
вставить в MYSCHEMA.MY_DESTINATION_TABLE(COL_ID, COL2) выберите «ПОЛЬЗОВАТЕЛЬ1», COL2 из MYSCHEMA.MY_SOURCE_TABLE, где USER_ID = 'USER1';
ВСТАВИТЬ В MYSCHEMA.MY_DESTINATION_TABLE (COL_ID, COL2) ВЫБЕРИТЕ COL_ID, COL2 ИЗ MYSCHEMA.MY_SOURCE_TABLE ГДЕ COL_ID IN (ВЫБЕРИТЕ COL_ID FROM MYSCHEMA.MY_SOURCE_TABLE);
ВСТАВИТЬ В MYSCHEMA.MY_DESTINATION_TABLE (COL_ID, DESTINATION_COL2) ВЫБЕРИТЕ COL_ID, SOURCE_COL2 ИЗ MYSCHEMA.MY_SOURCE_TABLE ГДЕ COL_ID IN (ВЫБЕРИТЕ COL_ID FROM MYSCHEMA.MY_SOURCE_TABLE);
ВСТАВИТЬ В MYSCHEMA.MY_DESTINATION_TABLE (DEST_COL_ID, DEST_COL2) ВЫБИРАТЬ ИСТОЧНИК_COL_ID, СЛУЧАЙ КОГДА SOURCE_COL1 = «Мое имя 1», ТОГДА «МОЕ_ИМЯ_1» КОГДА SOURCE_COL1 = «Мое имя 2», ТОГДА «МОЕ_ИМЯ_2» -- При необходимости добавьте дополнительные сопоставления ELSE SOURCE_COL1 — случай по умолчанию, если совпадение не найдено. КОНЕЦ ИЗ MYSCHEMA.MY_SOURCE_TABLE ГДЕ SOURCE_COL_ID IN (ВЫБЕРИТЕ SOURCE_COL_ID FROM MYSCHEMA.MY_SOURCE_TABLE);
Вы можете использовать:
=IF(D8:D16=0,"","INSERT INTO MYTABLE (ROLE_ID,GROUP,SUBGROUP) values('"&D8:D16&"','"&E8:E16&"','"&F8:F16&"')")
Вы пробовали функцию
MAP()
?=MAP(D8:D16,E8:E16,F8:F16,LAMBDA(x,y,z,IF(x=0,"","INSERT INTO MYTABLE (ROLE_ID,GROUP,SUBGROUP) values('"&z&"','"&y&"','"&z&"')")))
.