SqlText
Объект для хранения текста sql и манипуляций с ним.
Заменяемые части sql
select
Часть текста sql между select и from. Для сложных sql, где и select и from может
встречаться много раз, слова помечаются коментарием
/**/, который ставится до select или from:
select * from aaa where 0=0 order by id
/**/select * /**/from aaa where 0=0 and (b in select a from c) order by id
Используется для подмены или дополнения списка полей. Например, для запроса общего количества
записей можно заменить поля в select на count(*) as cnt.
where
Место вставки условия фильтрации. Автоматически выявляется по наличию слова where
в тексте запроса, после которого и вставляется условие фильтрации.
Если в тексте sql несколько where, то нужный помечается коментарием /**/ до where.
Если в тексте sql имеется несколько where, в которых нужно разместить условия фильтрации,
то место вставки помечается коментарием /*where:name*/, где name - имя where.
Коментарий /*where*/ эквивалентен /*where:default*/.
Существующие условия фильтрации дополняются новымы через and.
select * from aaa where 0=0 order by id
select * from aaa /**/where 0=0 order by id
select * from aaa where 0=0 /*where*/ order by id
select * from aaa where 0=0 /*where:default*/ order by id
select * from aaa /**/where 0=0 and (b in select a from c where c=1 /*where:w1*/) order by id
order by
Место вставки сортировки. Автоматически выявляется по фразе order by. Если в тексте sql
несколько операторов order by, то нужный помечается коментарием /**/. Текст order by
рассматривается до конца текста sql либо до коментария /*end*/:
select * from aaa where 0=0 order by id
select * from aaa where 0=0 and
(b in select a from c where c=1 order by a)
/**/order by tab/*end*/ group by id
Используется для подмены сортировки или ее исключения.
part
Место вставки произвольного фрагмента sql. Текст вставляется после коментария /*part:XXX*/.
select * from aaa /*part:join1*/ where p1=1 /*part:where1*/