Используя MySQL, я пытаюсь сделать запрос менее подробным. Вместо
UPDATE tbl SET col = Point(
If(
condition,
long CASE WHEN THEN ELSE END,
a different long CASE WHEN THEN ELSE END
),
If(
condition,
long CASE WHEN THEN ELSE END,
a different long CASE WHEN THEN ELSE END
)
)
Я попробовал следующее, но не смог
UPDATE tbl SET col = Point(
SELECT If(condition, x, different(x)), If(condition, y, different(y))
FROM (
SELECT long CASE WHEN THEN ELSE END x, long CASE WHEN THEN ELSE END y
FROM tbl
) foo
)
Разве нельзя использовать инструкцию SELECT для замены аргументов функции? Или я просто делаю что-то глупое? Или есть другой способ заставить этот long CASE WHEN THEN ELSE END
появиться только один раз?