2016-05-01 1 views
0

Мне нужно найти в SQL или Python слова внутри строки, которые написаны в верхних регистрах, если они существуют.найти строки в верхнем регистре в записи SQL или в Python

Например, для строки: «Меня зовут NOA», она вернет NOA.

Долгий путь я подумал о том, чтобы использовать значение ASCII: если 64 < CHR (я) если 64 < CHR (я + 1) ....

+1

Какую вы используете? Пожалуйста, отметьте соответствующим образом. –

ответ

0

Вы могли бы использование string_split для этого.

Предположим, у вас есть эта таблица:

create table phrases (
    phrase varchar(200) 
); 

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

Тогда вы можете написать:

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

с данным выборочных данных будет возвращать:

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

Убедитесь, принять к сведению этой информации в документации:

Функция STRING_SPLIT доступна только под уровнем совместимости 130. Если уровень совместимости базы данных ниже 130, SQL Server не сможет найти и выполнить функцию STRING_SPLIT. Вы можете изменить уровень совместимости базы данных, используя следующую команду: ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 130

Смежные вопросы