2016-05-01 7 views
0

Ich muss in SQL oder Python die Wörter innerhalb einer Zeichenfolge finden, die in Großbuchstaben geschrieben sind, wenn sie vorhanden sind.Suche nach Großbuchstaben im SQL-Datensatz oder in Python

Zum Beispiel für die Zeichenfolge: "Mein Name ist NOA" würde NOA zurückgeben.

Der lange Weg ich dachte, ist der ASCII-Wert zu verwenden: wenn 64 < chr (i) wenn 64 < chr (i + 1) ....

+1

Welche Datenbank verwenden Sie? Bitte passend etikettieren. –

Antwort

0

Sie könnten Verwenden Sie dafür string_split.

Angenommen, Sie in dieser Tabelle haben:

create table phrases (
    phrase varchar(200) 
); 

insert into phrases values ('My name is NOA'); 

Dann können Sie schreiben:

select  phrase, value as uppercase_word 
from  phrases 
cross apply string_split(phrase, ' ') 
where  upper(value) = value 

Mit den gegebenen Beispieldaten wird es zurück:

phrase   | uppercase_word 
---------------+--------------- 
My name is NOA | NOA 

Achten Sie darauf, zur Kenntnis nehmen dieser Informationen in der Dokumentation:

Die Funktion STRING_SPLIT ist nur unter Kompatibilitätsstufe 130 verfügbar. Wenn die Datenbankkompatibilitätsstufe niedriger als 130 ist, kann SQL Server die Funktion STRING_SPLIT nicht finden und ausführen. Sie können den Kompatibilitätsgrad der Datenbank mit dem folgenden Befehl ändern: ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 130