2013-05-11 36 views
1

所以我有这样的:选择具体列名

CREATE PROCEDURE getBattingColumnNames 
AS 

SELECT COLUMN_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'Batting' 
AND COLUMN_NAME NOT IN ('playerID','yearID','stint','teamID','lgID', 'G_batting','GIDP','G_old'); 
GO 

而且它的伟大工程。我得到我想要的所有列名,在c#中,我使用它来填充列名下拉列表。然而,我想改变我的一个专栏名称,“Doub”。所以玩弄它我试过:

SELECT  COLUMN_NAME.Doub AS 'DB' 
FROM   INFORMATION_SCHEMA.COLUMNS 
WHERE  (TABLE_NAME = 'Batting') 

及其变化,并且错误是无法绑定多点标识符标识符。我如何在此查询中更改该列名称?

+0

当基础的用户界面元素关闭动态列名的,我强烈怀疑数据模型不符合[第一范式(HTTP:/ /en.wikipedia.org/wiki/First_normal_form),如果这是真的,就应该解决这个问题。 – 2013-05-11 20:17:24

回答

3

你可以使用一个case翻译列名:

select case COLUMN_NAME 
     when 'Doub' then 'DB' 
     else COLUMN_NAME 
     end 
from ... 
+0

完美工作,我googling不正确,从未遇到(或想到)案件陈述。谢谢 – dwarf 2013-05-11 17:29:19