2013-05-11 3 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') 

и вариация, что и ошибка является идентификатор mulitplart не может быть связана. Как я могу изменить это имя столбца в этом запросе?

+0

Когда основывая элементы пользовательского интерфейса от динамических имен столбцов, я сильно подозреваю, модель данных не соответствует [Первая нормальная форма] (HTTP://en.wikipedia.org/wiki/First_normal_form), и это должно быть рассмотрено, если это правда. –

ответ

3

Вы можете использовать case перевести имя столбца:

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

работал отлично, я неправильно искал язык, никогда не сталкивался (или не думал) о заявлении дела. благодаря – dwarf

Смежные вопросы