Как мы можем дать, несколько искажают для столбца в SQL?

У меня есть вызов функции в запросе, и тот результат должен быть возвращен с двумя именами.

Пример:

SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable

Я хочу, чтобы результат myFunction был возвращен в двух различных столбцах. Действительно ли это возможно, не делая другой вызов функции в списке столбцов?

9
задан Jenn 1 July 2010 в 11:00
поделиться

2 ответа

Вы не можете дать имя двум псевдонимам напрямую, но вы можете повторить столбец в производном запросе:

SELECT name1, name1 AS name2 FROM 
  (SELECT myFunction(column1) As Name1 From MyTable) base;

Вы также можете просто продублировать вызов функции. Если функция детерминирована, оптимизатор может вызвать ее только один раз. (Но, конечно, проверьте план запроса.)

13
ответ дан 4 December 2019 в 14:26
поделиться
SELECT myFunction(column1) as Name1, myFunction(column1) as Name2 FROM myTable

Я полагаю, это то, что вы имеете в виду. Это часто используется в среде, которая ожидает возвращаемое значение и отображаемое значение для раскрывающегося списка. Например,

select name as DisplayVal, name as ReturnVal from Table
1
ответ дан 4 December 2019 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: