Есть ли способ модульного кода SQL, чтобы он был более читабельным и проверяемым?
Мой код SQL часто становится длинной сложной серией вложенных объединений, внутренних объединений и т.д., которые трудно писать и трудно отлаживать. Напротив, на языке процедур, таком как Javascript или Java, можно было бы отжать отдельные элементы в виде отдельных функций, которые вы бы назвали по имени.
Да, каждый может писать каждый как полностью отдельные запросы, хранящиеся в базе данных, или как хранимые процедуры, но часто я не хочу изменять/загромождать базу данных, просто спросите, это нормально, особенно если администратор базы данных не " t желает предоставить разрешения на запись всем пользователям.
Например, концептуально сложный запрос может быть легко описан в псевдокоде следующим образом:
(getCustomerProfile)
left join
(getSummarizedCustomerTransactionHistory)
using (customerId)
left join
(getGeographicalSummaries)
using (region, vendor)
...
Я понимаю, что много написано по этой теме с теоретической точки зрения (несколько ссылок ниже), но я просто ищу способ сделать код более удобным для написания правильно и легче читать после его написания. Возможно, просто синтаксический сахар, чтобы отвлечь сложность от зрелища, если не от исполнения, который компилируется в буквальном SQL, на который я пытаюсь не смотреть. По аналогии...
- Stylus: CSS::
- CoffeeScript: Javascript::
- Язык макроса SAS: язык SAS::
- ?: SQL
И если особый вкус SQL имеет значение, большая часть моей работы находится в Vertica.
http://lambda-the-ultimate.org/node/2440
Повторное использование кода и модульность в SQL
Не работают ли базы данных и функциональное программирование?