从sql查询中仅选择列名

时间:2014-11-13 12:26:27

标签: sql sql-server

作为一个例子,我在这里有这个问题

SELECT DISTINCT convert(varchar(10), PickupDate ,105) AS [Pickup dates]
FROM info.dbo.A_Query_Detail AS D
INNER JOIN info.dbo.A_Query_Header AS ACQ on ACQ.ID = D.Header_ID
WHERE D.HeaderID = @HeaderID 
AND ACQ.PriceType = 'Pickup'
GROUP BY 
Adrid, convert(varchar(10), PickupDate ,105) 

我想在这里得到的只是列名而不与上述查询冲突。 所以我的结果将是:“Column_Date”或Pickup日期如上所述。 我对 sys.tables 有点兴趣,但我似乎无法使用上述代码。

2 个答案:

答案 0 :(得分:3)

如果您想要列列表,有时我会使用临时视图:

create view _MyView as <your query here>

然后你可以这样做:

select *
from information_schema.columns
where table_name = '_MyView'

您可以通过执行此操作来获取列名称和类型。

然后你可以这样做:

drop view _MyView

(当然,视图名称不应与其他任何内容冲突。)

答案 1 :(得分:1)

试试这个,

SELECT 'Pickup dates' AS [ColumnName];

这就像@Gordon Linoff's answer,但没有创建视图的开销。