2011-01-18 2 views
1

J'ai une table, qui a une colonne (SQL_Latin1_General_CP1_CI_AI), et a quelques centaines de lignes où cette colonne est remplie en majuscules. Je voudrais savoir s'il est possible de sélectionner toutes les lignes qui ont ce champ en majuscule et, finalement, si je peux faire une mise à jour pour mettre les champs en majuscule.SQL - Sélectionner les champs majuscules

J'utilise SQL Management Studio sur MSSQL 2005

Merci

Répondre

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 

Retours

(1 row(s) affected) 

col 
---- 
foo 
Bar 


(3 row(s) affected) 
+0

Merci, mais je reçois collation non valide 'SQL_Latin1_General_CP1_CS_AI' –

+0

Oui, il semble que doesn n'existe pas. J'ai édité ma réponse déjà. –

+1

Vous auriez besoin COLLATE des deux côtés, non? ... le COLLATE s'applique ici à l'expression "UPPER (Col)" seulement – gbn

Questions connexes