2016-10-17 7 views
0

Выбрать все данные столбца как верхнийВыберите Все данные столбца в качестве верхней

в данный момент я использую upper(columnname) as 'xyz' этим я потерять имя цв, что я не хочу

и мое требование select col1,col2,col3,col4 from xyz table

я ищу способ, который может сделать все 4 седловины к верхней в единый синтаксис без потери Name Col

е г: select Upper(col1,col2,col3,col4) from xyz table

+2

использовать 'select upper (colname) как colname' – yvs

+0

' upper (columnname) as 'xyz'' является недопустимым (стандартным) SQL. Идентификаторы должны быть заключены в двойные кавычки ('as" xyz "'). Одиночные кавычки ('' ') предназначены только для строковых констант. –

+0

мой запрос работает нормально, но у меня есть 20 имен столбцов, поэтому в этом случае я должен написать 20 раз сверху и дать псевдоним – Aamir

ответ

0

Try This

DECLARE @columnName varchar(25) 
DECLARE @cursor CURSOR 
declare @sql nvarchar(1000) 
declare @tableName as nvarchar(30) 
set @tableName = 'YOURTABLE' 
SET @cursor = CURSOR FOR 
select c.name from sys.columns c inner join sys.tables t on c.object_id = t.object_id 
where c.object_id = (select object_id from sys.tables where name = @tableName) 


OPEN @cursor 

FETCH NEXT 

FROM @cursor INTO @columnName 
WHILE @@FETCH_STATUS = 0 
BEGIN 


set @sql = 'update YOURTABLE set '+ @columnName +' = upper(' + @columnName + ') where YOURTABLE.'[email protected]+' = YOURTABLE.'+ @columnName+'' 
EXEC(@sql) 


FETCH NEXT 
FROM @cursor INTO @columnName 
END 

CLOSE @cursor 
DEALLOCATE @cursor 

UPDATE: Вы должны обновить все ваши колонки так, что все они будут включены в верхний регистр

Примите к сведению: ПОЖАЛУЙСТА BACKUP ВАШ СТОЛ ПЕРЕД ПРОДОЛЖАЕТСЯ Изменить YOURTABLE на ваше имя таблицы

+0

Если это решение, отметьте его как ответ, спасибо! –

-1

Попробуйте это:

select UPPER(col1) AS Col1,UPPER(col2) AS col2,UPPER(col3) as 
    col3,UPPER(col4) as col4 from xyz table 
Смежные вопросы