我们如何为SQL中的列提供多个别名?

Jen*_*enn 9 sql t-sql database sql-server

我在查询中有一个函数调用,并且必须以两个名称返回该结果.

例:

SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable
Run Code Online (Sandbox Code Playgroud)

我希望myFunction的结果在两个不同的列中返回.如果没有在列列表中进行另一个函数调用,这是否可行?

mdm*_*dma 13

您不能直接为名称指定两个别名,但可以在派生查询中重复一个列:

SELECT name1, name1 AS name2 FROM 
  (SELECT myFunction(column1) As Name1 From MyTable) base;
Run Code Online (Sandbox Code Playgroud)

您也可以简单地复制函数调用.如果函数是确定性的,那么优化器可以只调用一次.(但当然,请检查查询计划.)