@ barrypicker, удобочитаемость была в порядке (она всегда была сложной). Слои были в основном необходимыми, поэтому вы могли определить значение x как column1 * column2 (на самом деле это вычурная инструкция case), а затем в layer2 вы можете использовать x в другом вычислении, не удваивая (и нарушая принцип DRY).

почему CTE дает лучшую производительность по сравнению с производными таблицами / подзапросами / временными таблицами и т. Д.?

Любые временные вычисления происходят во временной базе данных. Поэтому, если у нас есть курсорный подход, он также создает временную таблицу / рабочую таблицу во временной базе данных, и после завершения операции эта рабочая таблица уничтожается. Насколько я понимаю, CTE также делает то же самое (или создает временный результат в памяти? И, следовательно, повышает производительность). Тогда почему он лучше, чем описанные выше подходы, такие как курсор / производная таблица / подзапросы / временная таблица и т. Д.?

Ответы на вопрос(1)

Ваш ответ на вопрос