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.
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.
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.
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
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.
Tags und Links postgresql uppercase lowercase