Здравствуйте.
Ткните, пожалуйста, носом в хорошую документацию по существующим встроенным функциям plpgsql...
А то элементарное `присвоить значение или значение` не могу найти...
Чтобы было понятнее:
в питоне это `a = b or c`
в javascript это `a = b || c`
Что-то типа:
CREATE OR REPLACE FUNCTION getvalue(float, float) RETURNS float AS $BODY$ BEGIN IF NOT $1 IS NULL OR $1 != 0 THEN RETURN $1; END IF; RETURN $2; END; $BODY$ LANGUAGE plpgsql VOLATILE;
есть?
coalesce ?
coalesce ?
неа
SELECT COALESCE(0, 1);
SELECT COALESCE(NULL, 1);
SELECT COALESCE('', 'text');
не то... ланда... будем писать пользовательские...
PL/PgSQL не является в полной
PL/PgSQL не является в полной мере языком программрования. Вы не неайдёте в нём не только a= b or c; но и функций вычисления логарифмов, возведения в степень и т.д. Просто потому, что это не является задачей данного языка. Все эти функции берутся напрямую из PostgreSQL. Хотите логарифм от 2 в перменную var_name, пожалуйста:
SELECT ln(2) INTO var_name;
И это правильно! Не хватало ещё разных наборов функций, которые делают одно и тоже.
Что правильно?
Правильно то, что ln(), sin() и просто куча остальных есть, а наиболее востребованной во всех языках нет?
Чем они заслужили по Вашему?
Риторически...
Риторически... Кем
Риторически...
Кем востребовано? Пишу программы уже лет 15, и ни разу вашей конструкцией не пользовался.
Продукт OpenSource, напишите реализацию нужной вам функции и пришлите патчи разработчикам. Если это действительно нужно кому-то кроме вас, внедрят