Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 Server将一列命名为另一列';s选定值_Sql_Sql Server - Fatal编程技术网

SQL Server将一列命名为另一列';s选定值

SQL Server将一列命名为另一列';s选定值,sql,sql-server,Sql,Sql Server,我想使用所选结果作为新列名。例如: SELECT [Table1].ID, [Table1].OptionOneValue AS [Table2].OptionOneName, [Table1].OptionTwoValue AS [Table2].OptionTwoName, [Table1].OptionThreeValue AS [Table2].OptionThreeName, FROM [Table1] INNER JOIN [Table2] ON [Table1].ID = [Ta

我想使用所选结果作为新列名。例如:

SELECT 
[Table1].ID,
[Table1].OptionOneValue AS [Table2].OptionOneName,
[Table1].OptionTwoValue AS [Table2].OptionTwoName,
[Table1].OptionThreeValue AS [Table2].OptionThreeName,
FROM [Table1]
INNER JOIN [Table2] ON [Table1].ID = [Table2].ItemID

| ID         | Screen Size | Cost         | Service Date |
|:-----------|------------:|:------------:|:------------:|
| 1001       | 1920x1080   | NULL         | 11-25-19     |
| 1002       | 2048×1080   | 400.00       | 11-26-19     |    
| 1003       | NULL        | NULL         | 11-26-19     |   
| 1004       | NULL        | NULL         | 11-27-19     |
| 1005       | 2048×1080   | 500.00       | 11-27-19     |  
  • 选项名称=屏幕大小
  • OptionWoName=成本
  • 选项重新命名=服务日期

这将不起作用,它会引发语法错误。这是与我所问问题最接近的另一个问题:

您需要使用动态sql来实现这一点,因为列名必须在查询处理的解析阶段预定义,只有通过动态查询才能实现;然而,在大多数情况下,这种情况可能不值得推荐。例如,如果联接返回多对多,结果会发生什么变化,那么列名应该是什么,以及如何使用它?我会重新评估你试图解决的问题,然后写一个不同的脚本来解决这个问题