Откатился до первой редакции, потом отредактировал несколько. См пересмотренный вопрос .
У меня есть интересная проблема с нижеуказанным SELECT.
Это о предложении ORDER BY; Я пытаюсь отсортировать, используя переменную с именем "p_sortby".
Упорядочить можно по имени столбца или положению столбца (1, 2,… и т. Д.).
Каким-то образом, если я использую положение в PL / SQL, это не работает.
Поэтому я должен использовать имя столбца, который мы не можем просто передать туда строку varchar2,
нам нужно использовать реальное имя столбца. Я заметил, что это относится только к столбцу типа varchar2.
Это не относится, например, к числовому столбцу.
Не могли бы вы все дать мне совет относительно такого рода вопроса о том, как решить.
/*I am sorry as I cannot paste the format correct here*/.
Не могли бы вы все отредактировать SELECT и поставить нужный формат.
select distinct gl.group_id, gl.group_name
from test_group gl
where gl.group_org_id = p_orgid
and ( gl.group_name_key like '%' || p_name || '%'
or p_name is null
or p_name = ''
)
and ( gl.group_description_key like '%' || p_description || '%'
or p_description is null
or p_description = ''
)
and ( gl.status_code = p_statuscode
or p_statuscode is null
or p_statuscode = 99
)
and gl.group_id in (
select gm.group_id
from test_group_member gm join test_org_person op
on gm.person_id = op.o_person_id
join test_person pp
on op.o_person_id = pp.person_id
where ( upper(pp.firstname) like
'%' || upper(p_adminfirstname) || '%'
or p_adminfirstname is null
or p_adminfirstname = ''
)
and ( upper(pp.lastname) like
'%' || upper(p_adminlastname) || '%'
or p_adminlastname is null
or p_adminlastname = ''
)
and ( upper(op.emplid) like
'%' || upper(p_adminemployeeid) || '%'
or p_adminemployeeid is null
or p_adminemployeeid = ''
)
and gm.isadmin = 1)
and gl.group_id in (
select gm.group_id
from test_group_member gm join test_org_person op
on gm.person_id = op.o_person_id
join test_person pp
on op.o_person_id = pp.person_id
where ( upper(pp.firstname) like
'%' || upper(p_memberfirstname) || '%'
or p_memberfirstname is null
or p_memberfirstname = ''
)
and ( upper(pp.lastname) like
'%' || upper(p_memberlastname) || '%'
or p_memberlastname is null
or p_memberlastname = ''
)
and ( upper(op.emplid) like
'%' || upper(p_memberemployeeid) || '%'
or p_memberemployeeid is null
or p_memberemployeeid = ''
)
and gm.isadmin = 0)