Вывод на верхнем регистре реализуется функцией upper(название столбца или текст)
Q3_2 Выведем названия отделов так, чтобы первая буква названия выводилась на верхнем регистре
demo@10g> select initcap(lower(name)) from department;
INITCAP(LOWER(
--------------
Accounting
Research
Sales
Operations
Research
Sales
Operations
Sales
Operations
Operations
Sales
11 строк выбрано.
Q3_3 Дополним выводимые названия отделов слева символом «_», так, чтобы при этом выводимое название вместе с добавленными символами имело 20 символов
demo@10g> select lpad(name,20,’_’) from department;
Q3_4 Дополним выводимые названия отделов справа символом «*», так, чтобы при этом выводимое название вместе с добавленными символами имело 20 символов
Q3_5 Выведем наряду с описанием продукта усеченное слева описание продукта (удалением из описания продукта начального слова «YELLOW ») –только для продуктов, описание которых начинается словом «YELLOW»
Q3_6 Выведем наряду с названием отдела усеченное справа название отдела (удалением из названия отдела завершающей части слова «ATIONS ») –только для продуктов, описание которых начинается буквой «O»
Q3_7 Выведем среднюю часть описания продукта, начинающегося на букву «W»
Функция substr «вырезает» из описания продукта 8 букв, начиная с шестой.
Q3_8 Определим, сколько раз символ «S» встречается в названиях отделов. Сделаем это за несколько шагов.
demo@10g> select name from department
where department_id in(10,20,30,40);
NAME
--------------
ACCOUNTING
RESEARCH
SALES
OPERATIONS
demo@10g> select length(name) from department
where department_id in(10,20,30,40);
LENGTH(NAME)
------------
demo@10g> select translate(name,'AS','A') from department
where department_id in(10,20,30,40);
TRANSLATE(NAME
--------------
ACCOUNTING
REEARCH
ALE
OPERATION
Функция translate в названии отдела, содержащемся в столбце name, заменяет символы из этого названия, если они встречаются в списке 'AS' на символы из списка 'A'. При такой замене 'A' "меняется" на 'A', 'S' меняется на ..., а вот для 'S' нет замены, так как
список замен включает только одну букву 'A' и на второй позиции списка замен нет букв. В этом случае (когда нет замены) Oracle убирает букву 'S' из названия отдела, содержащегося в столбце name.
demo@10g> select length(translate(name,'AS','A')) "Длина без символа S" from department
where department_id in(10,20,30,40);
Длина без символа S
-------------------
11 строк выбрано.
demo@10g> select length(name) - length(translate(name,'AS','A')) as "Число букв S" from department