Ich benötige eine SQL-Abfrage, um alle Daten in einer Spalte UPPER CASE zu erstellen.
Irgendwelche Ideen?
Antworten:
Wenn Sie nur Zeilen aktualisieren möchten , die derzeit nicht in Großbuchstaben geschrieben sind (anstelle aller Zeilen), müssen Sie den Unterschied folgendermaßen identifizieren COLLATE
:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
Die Fallempfindlichkeit basiert auf Ihren Sortiereinstellungen und unterscheidet normalerweise standardmäßig zwischen Groß- und Kleinschreibung.
Die Sortierung kann auf Server-, Datenbank-, Spalten- oder Abfrageebene festgelegt werden :
-- 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
Kollatierungsnamen geben an, wie eine Zeichenfolge codiert und gelesen werden soll, zum Beispiel:
Latin1_General_CI_AS
→ Groß- und Kleinschreibung wird nicht berücksichtigtLatin1_General_CS_AS
→ Groß- und Kleinschreibung beachten