SQL Server:如何在select期间从另一个表设置列别名?

时间:2012-02-20 13:04:26

标签: sql-server

我有2张桌子

表1:

DB1, DB2, DB3, DB4, DB5, Some other identifiers

表2:

EnumText, EnumValue, Some other identifiers

我想做的是: -

  1. 从表1中选择数据
  2. 在选择期间,使用表2的EnumText列中的数据更改列DB1到DB5的别名,其中EnumValue将包含DB1到DB5。
  3. 示例命令是:

    Select 
        DB1 as [Select EnumText from Table2 where EnumValue='DB1'], 
        DB2, DB3 
    from Table1
    

    这个命令不起作用,但我希望你们有人知道。

    提前谢谢。

1 个答案:

答案 0 :(得分:4)

没有动态SQL,您不能拥有动态别名。如果您确实更改了结果集列名称,那么如何通过名称访问它们? (我不会使用索引,因为它会破坏)

因此,您可以添加固定列来描述它。并阅读

Select 
    DB1, foo.EnumText AS DB1EnumText, 
    DB2, 
    DB3 
from 
    Table1
    CROSS JOIN
    (Select EnumText from Table2 where EnumValue='DB1') foo