Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

decode()

Только больной ум мог придумать такой синитаксис:
decode( expression , compare_value, return_value, [,compare, return_value] ... [,default_return_value] )
Туда же и эквивалентность NULL пустой строки. Пустая строка - это пустая строка, а NULL - это NULL.
Что касается decode - первый параметр функции сравнивается поочередно со всеми четными, кроме последнего, если всего параметров четное количество. В случае совпадения возвращается значение параметра, переданного следом за тем, с которым совпало значение первого. Если не совпало ни с чем, возвращается последний чётный параметр, если он есть. Есть в этом некое очарование, как в стихах и картинках умалишенных, продаваемых с аукционов за тысячу евро. Пользоваться этой конструкцией можно, но с трудом с непривычки.
UPD Срд, 14 Янв, 18:39 И вот, наконец, попив чаю, я соорудил три страшных конcтрукции, которые из одного поля PSGR_NAME типа "Фамилия[ Имя[ Отчество]]" делают три поля - по отдельности для имени, фамилии и отчества.
update passengers_table set PSGR_FNAME = decode(instr(PSGR_NAME, ' '), 0, '', substr(PSGR_NAME, instr(PSGR_NAME, ' ') + 1, instr(PSGR_NAME, ' ', 1, 2) - instr(PSGR_NAME, ' ') - 1));
update passengers_table set PSGR_MNAME = decode(instr(PSGR_NAME, ' ', 1, 2), 0, '', substr(PSGR_NAME, instr(PSGR_NAME, ' ', 1, 2) + 1));
update passengers_table set PSGR_NAME = decode(instr(PSGR_NAME, ' '), 0, PSGR_NAME, substr(PSGR_NAME, 1, instr(PSGR_NAME, ' ') - 1));
Наверняка это работает не совсем так, как надо, и существуют более простые способы. Тем не менее, я горд собой. Это вам не майэскуэлевский if(expr1, expr2, expr3), который понимают даже дети.
Tags: web, работа
Subscribe

  • Первый заметный результат диеты

    Ну, конечно, на самом деле не первый. Я же каждое утро взвешиваюсь, скрупулёзно записываю результаты, а потом ещё и строю графики. И ещё чаще…

  • Плёнка №185

    Тематика снимков обычная: городское фото. Время съёмок: март 2021. Плёнка: Fomapan profi line action 400 Фотоаппарат и объектив: Zenit-E + Helios…

  • Фотографии с двух прогулок

    Четвёртого апреля было, хотя и ветрено, но солнечно и относительно тепло. Не то, что сегодня... сегодня погода испортилась и снова стало холодно. К…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 3 comments