J'ai besoin d'une requête SQL pour créer toutes les données d'une colonne UPPER CASE?
Des idées?
Permanent:
UPDATE
MyTable
SET
MyColumn = UPPER(MyColumn)
Temporaire:
SELECT
UPPER(MyColumn) AS MyColumn
FROM
MyTable
Si vous voulez mettre à jour uniquement les lignes qui ne sont pas actuellement majuscules (au lieu de toutes les lignes), vous devez identifier la différence à l'aide de COLLATE
comme ceci:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
La sensibilité à la casse est basée sur vos paramètres de classement et est généralement insensible à la casse par défaut.
Le classement peut être défini à Serveur, Base de données, Colonne ou Requête Niveau:
-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
Noms de classement précisez comment une chaîne doit être codée et lue, par exemple:
Latin1_General_CI_AS
→ Insensible à la casseLatin1_General_CS_AS
→ Sensible à la casse