2017-10-06 1 views
-5

Wie kann ich die Funktion, die alle Großbuchstaben in Kleinbuchstaben und Kleinbuchstaben in Großbuchstaben in einer Zeichenfolge z. "Hello World" "HelloW World"SQL: Wie kann ich die Funktion, die alle Großbuchstaben in Großbuchstaben und Kleinbuchstaben in Großbuchstaben in einer Zeichenfolge ändern

+3

Sieht aus wie Hausaufgaben für mich. Was hast du bisher versucht? Sende deinen Code. –

+0

Ich würde die 'translate' Funktion implementieren und nur Argumente für diesen Zweck verwenden. –

+0

Wie kommt es, dass wir immer die sprichwörtlichen und üblichen "Hausaufgaben?" auf der Website? Nur neugierig ... ich habe es vergessen. –

Antwort

0

Sie können eine Funktion erstellen, wo der Cursor iterieren und den String-Wert holen/holen wird, und wenn er ein Kleinbuchstabe ist, können Sie den String SELECT UPPER('test string') in Großbuchstaben .If ändern Der Zeichenfolgenwert wird als Großbuchstaben eingegeben. Sie können die Funktion SELECT lOWER('test string') in Kleinbuchstaben konvertieren.

+1

Dies ist nicht OP gefragt. schau dir sein/ihr beispiel an – FLICKER

1

Sie können eine Funktion schreiben, die jedes Zeichen in der Zeichenfolge einzeln nacheinander durchläuft, und wenn es in der Gruppe von Kleinbuchstaben ist, wenden Sie die UPPER-Funktion an, andernfalls wenden Sie die LOWER-Funktion an und erstellen die Ausgabe Ihrer Funktion Zeichenfolge.

+0

benutze die ascii um die oberen und unteren zu unterscheiden? – xixixixi

+0

Das ist ein Weg. Ein anderer ist PATINDEX mit einer Groß- und Kleinschreibung. (Beachten Sie, dass die Bereichsspezifikation nicht funktioniert. Geben Sie alle Buchstaben des Alphabets in dem Muster ein, das angepasst werden soll): https://stackoverflow.com/questions/4212110/range-wildcard-pattern-matching- Verhalten mit Groß- und Kleinschreibung –

+1

Die Bereichsspezifikation funktioniert mit einer binären Sortierung. –

0

Sie haben keine Version angegeben. Für SQL Server 2017 können Sie TRANSLATE wie von Gordon vorgeschlagen verwenden.

WITH T(S) AS 
(
SELECT 'HelloW world' 
) 
SELECT TRANSLATE(S COLLATE Latin1_General_CS_AS, 
       'ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijlkmnopqrstuvwxyz', 
       'abcdefghijlkmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ') 
FROM T 
+0

Entschuldigung, ich habe es vergessen, funktioniert es auf dem Server 2016? – xixixixi

+0

Nein. Dies ist nur 2017 –

Verwandte Themen