Wie kann man feststellen, ob ein Zeichen Groß- oder Kleinschreibung in postgresql ist?

7

Ich habe keine Funktion wie isupper oder islower in postgresql gefunden. Was ich tatsächlich brauche, ist, alle Datensätze aus einer Tabelle auszuwählen, wobei eine der Spalten Wörter mit Großbuchstaben (aber keine Großbuchstaben) enthält. Das heißt, das erste Symbol jedes Wortes ist ein Großbuchstabe und das zweite ist ein Kleinbuchstabe. Wörter können in jeder Sprache geschrieben werden.

    
Pupkov-Zadnij 04.12.2012, 16:29
quelle

4 Antworten

13

Was ist mit der Auswahl der Zeilen, bei denen die Groß- und Kleinschreibung des ersten Buchstabens in der Spalte nicht gleich der Kleinschreibung des ersten Buchstabens in der Spalte ist?

Etwas wie:

%Vor%

Theoretisch sollte das oben genannte auch die Datenbank charset / locale berücksichtigen.

    
BobG 04.12.2012, 16:38
quelle
7

Sie können Postgres regexp verwenden, um Ihren Account zu testen spezifische Bedingung:

%Vor%

Sie könnten E'^[[:upper:]][[:lower:]]' verwenden, wenn das zweite Zeichen Kleinbuchstaben statt Großbuchstaben sein muss.

    
dbenhur 04.12.2012 17:40
quelle
0

Da postgresql Groß- und Kleinschreibung bei String-Vergleichen berücksichtigt, ist die BobG-Antwort besser

Eine andere Lösung wäre, ascii mit String-Funktionen

So

%Vor%

Wenn es zwischen 65 und 90 ist, ist es ein Großbuchstabe, wie Sie in der Tabelle sehen können, die ich verlinkt habe

Wenn es zwischen 97 und 122 ist, ist es klein geschrieben

    
Marc 04.12.2012 16:36
quelle
0

Wenn Sie wissen möchten, ob eine Zeichenkette mindestens ein Kleinbuchstabe enthält, können Sie die obere Funktion [obere (mystr) = mystr]:

verwenden %Vor%

Sie können dieselbe Logik verwenden, um zu überprüfen, ob eine Zeichenfolge mindestens ein Großbuchstabe mit der Funktion lower () sql enthält.

Für komplexere Muster müssen Sie den regulären Ausdruck oder die Teilzeichenfolge verwenden, wie in früheren Antworten vorgeschlagen.

    
Kemin Zhou 05.01.2018 06:02
quelle

Tags und Links