【问题标题】:How can we give multiple alias for a column in SQL?我们如何为 SQL 中的列赋予多个别名?
【发布时间】:2010-07-01 11:00:14
【问题描述】:

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

例子:

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

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

【问题讨论】:

    标签: sql sql-server database tsql


    【解决方案1】:

    你不能直接给一个名字两个别名,但你可以在派生查询中重复一列:

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

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

    【讨论】:

      【解决方案2】:
      SELECT myFunction(column1) as Name1, myFunction(column1) as Name2 FROM myTable
      

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

      select name as DisplayVal, name as ReturnVal from Table
      

      【讨论】:

      • 不是要调用两次函数来获取相同的值吗?
      • @Jenn 如果函数是确定性的,它只会被调用一次。
      猜你喜欢
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2022-08-18
      • 2021-03-17
      相关资源
      最近更新 更多