Прежде всего, давайте начнем с to_char
. to_char(SYSDATE,'Day')
даст вам день недели, который сегодня. to_char
позволяет преобразовать дату (в данном случае сегодняшнюю дату, так как вы указали sysdate
) в строку определенного формата. Посмотрите здесь другие примеры форматов даты, которые вы можете использовать:
http://www.techonthenet.com/oracle/functions/to_char.php
trim
удаляет начальные и конечные пробелы.
Теперь для decode
. Вы можете думать о decode
как о выражении if else. Взгляните на:
http://www.techonthenet.com/oracle/functions/decode.php
В вашем конкретном примере вы можете прочитать это утверждение так: если сегодня понедельник, возвращаем 3, а возвращаем 1. 1. 1020 *
decode
также позволяет вам делать более сложные вещи:
select decode(TRIM(to_char(SYSDATE,'Day')),'Monday','3','Tuesday',5,'1')
from dual
Это будет звучать так: если сегодня возвращение в понедельник 3, иначе, если сегодня возвращение во вторник 5, иначе возвращение 1