Не может ли кто-нибудь объяснить порядок выполнения ниже запроса?Порядок выполнения запроса DB2 для добавления даты в имя файла и генерации FTP-карты
Ниже запрос используется для добавления даты к имени файла и создания соответствующей ftp-карты.
SELECT CHAR('close',80) FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT CHAR(' /CSSC/Inbound/AP_MP_P2C_A47_Report/A47_"' ||
SUBSTR(CHAR(CURRENT DATE,ISO),6,2) ||
SUBSTR(CHAR(CURRENT DATE,ISO),9,2) ||
SUBSTR(CHAR(CURRENT DATE,ISO),3,2) || '.TXT',80)
FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT CHAR(
'put ' ||
X'27' ||
'MCSP.WMCS11CD.OPENPOS.TABFILE.TEMP' ||
X'27' ||
' +'
,80)
FROM
SYSIBM.SYSDUMMY1
UNION ALL
SELECT CHAR('ASCII',80) FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT CHAR('quit',80) FROM SYSIBM.SYSDUMMY1;
В результате
ASCII
put 'MCSP.WMCS11CD.OPENPOS.TABFILE.TEMP' +
/CSSC/Inbound/AP_MP_P2C_A47_Report/A47_110914.TXT
close
quit
я понял запрос, но, как это произошло в указанном выше порядке. если я меняю строку запроса, он дает другой результат (то есть вопросы порядка)
В реляционной базе данных порядок набора результатов не определен _unless_ существует явное предложение 'ORDER BY'. – mustaccio
есть. но как только я выполняю вышеуказанный запрос, я получаю вывод в порядке ASCII, put, close, quit. (Это ожидаемый результат, но любопытно узнать, что контролирует заказ). Еще одна вещь, которую нужно добавить, если вы посмотрите на вышеупомянутый запрос, вы можете видеть, что порядок запросов UNION отличается от результата. Если я изменяю запрос, обменивая места UNION, я получаю результат в другом порядке. Я также не использовал предложение «Заказ». –