2011-01-18 3 views
1

У меня есть таблица с столбцом (SQL_Latin1_General_CP1_CI_AI) и имеет пару сотен строк, где этот столбец заполняется в верхнем регистре. Я хотел бы знать, можно ли выбрать все строки, которые имеют это поле в верхнем регистре, и, в конечном счете, если я смогу сделать обновление, чтобы загладить эти поля.SQL - выбор полей в верхнем регистре

Я использую SQL Management Studio на MSSQL 2005

Благодаря

ответ

1
DECLARE @T TABLE 
(
col VARCHAR(3) COLLATE SQL_Latin1_General_CP1_CI_AI 
) 

INSERT INTO @T 
SELECT 'foo' UNION ALL SELECT 'BAR' UNION ALL SELECT '' 

UPDATE @T 
SET col = STUFF(LOWER(col),1,1,LEFT(col,1)) 
WHERE col = UPPER(col) COLLATE SQL_Latin1_General_CP1_CS_AS AND LEN(col) >1 

SELECT * FROM @T 

Возвращает

(1 row(s) affected) 

col 
---- 
foo 
Bar 


(3 row(s) affected) 
+0

спасибо, но я получаю Invalid сверку 'SQL_Latin1_General_CP1_CS_AI' –

+0

Да, кажется, что Безразлично не существует. Я уже отредактировал свой ответ. –

+1

Вам понадобится COLLATE с обеих сторон, нет? ... COLLATE здесь применяется к выражению «UPPER (Col)», только – gbn

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