У меня есть шаблон для таблицы T1
T1
ID | Name
---|----------
1 | template1
Тогда у меня есть некоторые параметры, которые необходимо заполнить, когда кто-то использует шаблон для таблицы T2
T2
ID | Template_ID | Params
---|-------------|---------
1 | 1 | @param1
2 | 1 | @param2
3 | 1 | @param3
4 | 1 | @param4
Таблица T3 связывает шаблон и параметры с конкретными значениями (если пользователь не устанавливает параметр, таблица будет заполнена именем по умолчанию, поэтому пользователь можетустановите его позже)
T3
ID | Param_ID | Value
---|----------|---------
1 | 1 | xyz
2 | 2 | @param2
3 | 3 | 1
4 | 4 | @param4
Итак, мне нужно перечислить шаблоны, которые имеют, по крайней мере, 1 параметр без определенного значения, только в 1 строке, но с этим запросом:
select T1.Name, T3.Value
from T1 inner join T2
on T1.ID = T2.Template_ID
inner join T3
on T2.ID = T3.Param_ID
where T3.Value like '@%';
В результате я получил 2 строки.Проблема в том, что у меня есть система над оракулом DB, и я не могу делать свои собственные запросы или изменять параметры DB, только выбирать столбцы таблиц (или использовать только эти 4 функции max, min, sum и count по столбцам) и система выполняет весь запрос самостоятельно, поэтому я не могу использовать большие трюки в предложении 'where' или 'order by' (принудительно задайте NLS_SORT в качестве Binary или используйте ROWNUM = 1, например).Итак, моя единственная идея - использовать другой символ вместо @ для определения параметров по умолчанию, использовать функцию MAX или MIN над значением T3.Value, но символ должен быть, безусловно, первым или последним в сортировке WEST_EUROPEAN.и я нигде не могу найти порядок сортировки этого.Кто-нибудь может мне помочь?