У меня есть таблица mytable
и mydate
это столбец в ней.
Однако, поскольку предложение SELECT
является динамическим, мне нужно предварительно настроить столбец с помощью addMinutes
.
Таким образом, столбец добавляется к переменной с функцией, так что в случае, если столбец появляется в SELECT
, переменная принимается вместо фактического значения в таблице.
SELECT mydate FROM "mytable"
исходное значение
mydate
возвращается
WITH addMinutes(mydate,300) AS mydate SELECT mydate FROM "mytable"
возвращается исходное значение
mydate
, ожидается, что будет возвращено значение переменной
Происходит прямо противоположное; Даже если упоминается переменная (то же имя, что и у столбца), фактическое значение столбца переопределяет предложение WITH
.
Есть ли у нас обходной путь для использования переменных предложения WITH
с теми же именами, что и у столбцов в таблице?
Я не знаю никакого обходного пути. Реальный вопрос: зачем вам нужно предложение WITH
, чтобы использовать одно и то же имя переменной?
Все работает как положено, если вы используете другое имя:
WITH
addMinutes(mydate, 300) AS mynewdate
SELECT
mynewdate,
mydate
FROM mytable;
SELECT
* REPLACE addMinutes(mydate, 300) AS mydate, mytable.mydate
FROM mytable
У меня есть сценарий, в котором предложение SELECT является динамическим и не может применять какие-либо функции даты или использовать альтернативное имя столбца.