Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中为一列指定多个别名?_Sql_Sql Server_Database_Tsql - Fatal编程技术网

如何在SQL中为一列指定多个别名?

如何在SQL中为一列指定多个别名?,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,我在查询中有一个函数调用,结果必须返回两个名称 例如: SELECT myFunction(column1) as Name1, column2 as Name2 FROM myTable 我希望myFunction的结果在两个不同的列中返回。如果不在列列表中进行另一个函数调用,是否可以执行此操作?您不能直接为名称指定两个别名,但可以在派生查询中重复列: SELECT name1, name1 AS name2 FROM (SELECT myFunction(column1) As Na

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

例如:

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 name as DisplayVal, name as ReturnVal from Table

它不是通过两次函数调用来获得相同的值吗?@Jenn如果函数是确定性的,它将只被调用一次。
select name as DisplayVal, name as ReturnVal from Table