среда, 16 июля 2014 г.

SQL запросы

Суммы для больших нуля и меньших нуля

SELECT SUM(CASE WHEN x > 0 THEN 1 ELSE 0 END) as GreatherThanZero
    , SUM(CASE WHEN x = 0 THEN 1 ELSE 0 END) as EqualZero
FROM table
WHERE x >= 0

Вывод через запятую + аггрегация

SELECT recipes.recipeid, recipes.name, array_to_string(array_agg(recipetags.tag), ' ')
FROM recipes
LEFT JOIN recipetags ON recipes.recipeid = recipetags.recipeid
GROUP BY recipes.recipeid, recipes.name;

Замена слова
UPDATE Table
SET main_identifier = REPLACE(main_identifier, '6016-', '6109-')
where id_service = 236 and id_gateway = 69 and id_payments_out_status =300

Формат времени

SELECT to_char(time_input, 'DD.MM.YYYY HH24:MI:SS')