是否可以从子查询中添加 SQL 别名?
Posted
技术标签:
【中文标题】是否可以从子查询中添加 SQL 别名?【英文标题】:Is it possible to add SQL alias from subquery? 【发布时间】:2016-05-17 14:33:25 【问题描述】:我想从 select 子查询中为 sql 查询添加别名。
类似
SELECT
ID AS(
SELECT
TOP1 NAME
FROM MYTABLE
)
,NAME
,SURNAME
FROM PEOPLE
有可能吗?
错误:
消息 102,级别 15,状态 1,第 1 行 '(' 附近的语法不正确。消息 102, 第 15 级,状态 1,第 1 行 ',' 附近的语法不正确。消息 156,级别 15, State 1, Line 8 关键字'and'附近的语法错误
【问题讨论】:
您使用的是哪个数据库?当您尝试该查询时,发生了什么? 切换订单,(SELECT TOP1 NAME FROM MYTABLE) AS ID
。不过也没多大意义。要么有一个相关的子查询,要么做一个联接。
@jarlh,你没明白,他想要动态别名
是的 - 我正在寻找动态别名,它不是倒退的。做什么的?我在不同的表格中有结果的标题。
@Kelk,动态语句是可能的。
【参考方案1】:
只有这样才有可能:
DECLARE @n VARCHAR(MAX), @sql VARCHAR(MAX)
SELECT TOP 1 @n = NAME FROM MYTABLE
SET @sql = 'SELECT ID AS ' + @n + ', NAME, SURNAME FROM PEOPLE'
EXEC(@sql)
【讨论】:
我猜TOP 1
是不需要的。
@Prdp,是的,没有订购就没有意义以上是关于是否可以从子查询中添加 SQL 别名?的主要内容,如果未能解决你的问题,请参考以下文章
从子查询 SQL 中选择最大数据,但它显示来自子查询的所有结果