У меня есть вызов функции в запросе, и тот результат должен быть возвращен с двумя именами.
Пример:
SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable
Я хочу, чтобы результат myFunction был возвращен в двух различных столбцах. Действительно ли это возможно, не делая другой вызов функции в списке столбцов?
Вы не можете дать имя двум псевдонимам напрямую, но вы можете повторить столбец в производном запросе:
SELECT name1, name1 AS name2 FROM
(SELECT myFunction(column1) As Name1 From MyTable) base;
Вы также можете просто продублировать вызов функции. Если функция детерминирована, оптимизатор может вызвать ее только один раз. (Но, конечно, проверьте план запроса.)
SELECT myFunction(column1) as Name1, myFunction(column1) as Name2 FROM myTable
Я полагаю, это то, что вы имеете в виду. Это часто используется в среде, которая ожидает возвращаемое значение и отображаемое значение для раскрывающегося списка. Например,
select name as DisplayVal, name as ReturnVal from Table