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

时间:2010-07-01 11:00:15

标签: sql sql-server database tsql

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

示例:

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

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

2 个答案:

答案 0 :(得分:13)

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

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

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

答案 1 :(得分:1)

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

我猜这就是你的意思。这通常用在需要返回值和下拉列表显示值的框架中。例如,

select name as DisplayVal, name as ReturnVal from Table